Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop

master
rob 11 months ago
commit 6a05134c9d

@ -123,8 +123,8 @@ class AdminController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'admin', logId: 'admin',
name: 'admin', index: 'admin',
className: 'AdminController', className: 'AdminController',
create: async (dtp) => { return new AdminController(dtp); }, create: async (dtp) => { return new AdminController(dtp); },
}; };

@ -158,8 +158,8 @@ class AnnouncementAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'announcement', logId: 'announcement',
slug: 'announcement', index: 'announcement',
className: 'AnnouncementAdminController', className: 'AnnouncementAdminController',
create: async (dtp) => { return new AnnouncementAdminController(dtp); }, create: async (dtp) => { return new AnnouncementAdminController(dtp); },
}; };

@ -130,8 +130,8 @@ class AttachmentAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminAttachment', logId: 'admin-attachment',
slug: 'adminAttachment', index: 'adminAttachment',
className: 'AttachmentAdminController', className: 'AttachmentAdminController',
create: async (dtp) => { return new AttachmentAdminController(dtp); }, create: async (dtp) => { return new AttachmentAdminController(dtp); },
}; };

@ -87,8 +87,8 @@ class ContentReportAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminContentReport', logId: 'admin-content-report',
slug: 'admin-content-report', index: 'adminContentReport',
className: 'ContentReportAdminController', className: 'ContentReportAdminController',
create: async (dtp) => { return new ContentReportAdminController(dtp); }, create: async (dtp) => { return new ContentReportAdminController(dtp); },
}; };

@ -159,8 +159,8 @@ class CoreNodeAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminCoreNode', logId: 'admin-core-node',
slug: 'admin-core-node', index: 'adminCoreNode',
className: 'CoreNodeAdminController', className: 'CoreNodeAdminController',
create: async (dtp) => { return new CoreNodeAdminController(dtp); }, create: async (dtp) => { return new CoreNodeAdminController(dtp); },
}; };

@ -88,8 +88,8 @@ class CoreUserAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminCoreUser', logId: 'admin-core-user',
slug: 'admin-core-user', index: 'adminCoreUser',
className: 'CoreUserAdminController', className: 'CoreUserAdminController',
create: async (dtp) => { return new CoreUserAdminController(dtp); }, create: async (dtp) => { return new CoreUserAdminController(dtp); },
}; };

@ -116,8 +116,8 @@ class HostAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminHost', logId: 'admin-host',
slug: 'admin-host', index: 'adminHost',
className: 'HostAdminController', className: 'HostAdminController',
create: async (dtp) => { return new HostAdminController(dtp); }, create: async (dtp) => { return new HostAdminController(dtp); },
}; };

@ -114,8 +114,8 @@ class ImageAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminImage', logId: 'admin-image',
slug: 'adminImage', index: 'adminImage',
className: 'ImageAdminController', className: 'ImageAdminController',
create: async (dtp) => { return new ImageAdminController(dtp); }, create: async (dtp) => { return new ImageAdminController(dtp); },
}; };

@ -119,8 +119,8 @@ class JobQueueAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminJobQueue', logId: 'admin-job-queue',
slug: 'admin-job-queue', index: 'adminJobQueue',
className: 'JobQueueAdminController', className: 'JobQueueAdminController',
create: async (dtp) => { return new JobQueueAdminController(dtp); }, create: async (dtp) => { return new JobQueueAdminController(dtp); },
}; };

@ -32,7 +32,7 @@ class LogAdminController extends SiteController {
try { try {
res.locals.query = req.query; res.locals.query = req.query;
res.locals.components = await logService.getComponentSlugs(); res.locals.components = await logService.getComponentIds();
res.locals.pagination = this.getPaginationParameters(req, 25); res.locals.pagination = this.getPaginationParameters(req, 25);
const search = { }; const search = { };
@ -51,8 +51,8 @@ class LogAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminLog', logId: 'admin-log',
slug: 'admin-log', index: 'adminLog',
className: 'LogAdminController', className: 'LogAdminController',
create: async (dtp) => { return new LogAdminController(dtp); }, create: async (dtp) => { return new LogAdminController(dtp); },
}; };

@ -167,8 +167,8 @@ class NewsletterAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminNewsletter', logId: 'admin-newsletter',
slug: 'admin-newsletter', index: 'adminNewsletter',
className: 'NewsletterAdminController', className: 'NewsletterAdminController',
create: async (dtp) => { return new NewsletterAdminController(dtp); }, create: async (dtp) => { return new NewsletterAdminController(dtp); },
}; };

@ -158,8 +158,8 @@ class NewsroomAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'newsroomAdmin', logId: 'newsroom-admin',
slug: 'newsroom-admin', index: 'newsroomAdmin',
className: 'NewsroomAdminController', className: 'NewsroomAdminController',
create: async (dtp) => { return new NewsroomAdminController(dtp); }, create: async (dtp) => { return new NewsroomAdminController(dtp); },
}; };

@ -16,7 +16,7 @@ class OtpAdminController extends SiteController {
} }
async start ( ) { async start ( ) {
// const upload = multer({ dest: `/tmp/${this.dtp.config.site.domainKey}/uploads/${module.exports.slug}` }); // const upload = multer({ dest: `/tmp/${this.dtp.config.site.domainKey}/uploads/${this.component.logId}` });
const router = express.Router(); const router = express.Router();
router.use(async (req, res, next) => { router.use(async (req, res, next) => {
@ -49,8 +49,8 @@ class OtpAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminOtp', logId: 'admin-otp',
slug: 'admin-opt', index: 'adminOtp',
className: 'OtpAdminController', className: 'OtpAdminController',
create: async (dtp) => { return new OtpAdminController(dtp); }, create: async (dtp) => { return new OtpAdminController(dtp); },
}; };

@ -128,8 +128,8 @@ class ServiceNodeAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminServiceNode', logId: 'admin-service-node',
slug: 'admin-service-node', index: 'adminServiceNode',
className: 'ServiceNodeAdminController', className: 'ServiceNodeAdminController',
create: async (dtp) => { return new ServiceNodeAdminController(dtp); }, create: async (dtp) => { return new ServiceNodeAdminController(dtp); },
}; };

@ -125,8 +125,8 @@ class SettingsAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminSettings', logId: 'admin-settings',
slug: 'admin-settings', index: 'adminSettings',
className: 'SettingsAdminController', className: 'SettingsAdminController',
create: async (dtp) => { return new SettingsAdminController(dtp); }, create: async (dtp) => { return new SettingsAdminController(dtp); },
}; };

@ -338,8 +338,8 @@ class UserAdminController extends SiteController {
} }
module.exports = { module.exports = {
name: 'adminUser', logId: 'admin-user',
slug: 'admin-user', index: 'adminUser',
className: 'UserAdminController', className: 'UserAdminController',
create: async (dtp) => { return new UserAdminController(dtp); }, create: async (dtp) => { return new UserAdminController(dtp); },
}; };

@ -76,8 +76,8 @@ class AnnouncementController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'announcement', logId: 'announcement',
name: 'announcement', index: 'announcement',
className: 'AnnouncementController', className: 'AnnouncementController',
create: async (dtp) => { return new AnnouncementController(dtp); }, create: async (dtp) => { return new AnnouncementController(dtp); },
}; };

@ -339,8 +339,8 @@ class AuthController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'auth', logId: 'auth',
name: 'auth', index: 'auth',
className: 'AuthController', className: 'AuthController',
create: async (dtp) => { return new AuthController(dtp); }, create: async (dtp) => { return new AuthController(dtp); },
}; };

@ -648,8 +648,8 @@ class ChatController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'chat', logId: 'chat',
name: 'chat', index: 'chat',
className: 'ChatController', className: 'ChatController',
create: async (dtp) => { return new ChatController(dtp); }, create: async (dtp) => { return new ChatController(dtp); },
}; };

@ -25,7 +25,7 @@ class CommentController extends SiteController {
dtp.app.use('/comment', router); dtp.app.use('/comment', router);
router.use(async (req, res, next) => { router.use(async (req, res, next) => {
res.locals.currentView = module.exports.slug; res.locals.currentView = module.exports.logId;
return next(); return next();
}); });
@ -151,8 +151,8 @@ class CommentController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'comment', logId: 'comment',
name: 'comment', index: 'comment',
className: 'CommentController', className: 'CommentController',
create: async (dtp) => { return new CommentController(dtp); }, create: async (dtp) => { return new CommentController(dtp); },
}; };

@ -81,8 +81,8 @@ class EmailController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'email', logId: 'email',
name: 'email', index: 'email',
className: 'EmailController', className: 'EmailController',
create: async (dtp) => { return new EmailController(dtp); }, create: async (dtp) => { return new EmailController(dtp); },
}; };

@ -41,7 +41,7 @@ class FormController extends SiteController {
sessionService.authCheckMiddleware({ requireLogin: true }), sessionService.authCheckMiddleware({ requireLogin: true }),
chatService.middleware({ maxOwnedRooms: 25, maxJoinedRooms: 50 }), chatService.middleware({ maxOwnedRooms: 25, maxJoinedRooms: 50 }),
async (req, res, next) => { async (req, res, next) => {
res.locals.currentView = module.exports.slug; res.locals.currentView = module.exports.logId;
return next(); return next();
}, },
); );
@ -64,8 +64,8 @@ class FormController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'form', logId: 'form',
name: 'form', index: 'form',
className: 'FormController', className: 'FormController',
create: async (dtp) => { return new FormController(dtp); }, create: async (dtp) => { return new FormController(dtp); },
}; };

@ -47,7 +47,7 @@ class HiveController extends SiteController {
res.locals.hiveView = 'home'; res.locals.hiveView = 'home';
res.status(200).json({ res.status(200).json({
pkg: { name: this.dtp.pkg.name, version: this.dtp.pkg.version }, pkg: { name: this.dtp.pkg.name, version: this.dtp.pkg.version },
component: { name: this.component.name, slug: this.component.slug }, component: this.component,
host: this.dtp.pkg.name, host: this.dtp.pkg.name,
description: this.dtp.pkg.description, description: this.dtp.pkg.description,
version: this.dtp.pkg.version, version: this.dtp.pkg.version,
@ -57,8 +57,8 @@ class HiveController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'hive', logId: 'hive',
name: 'hive', index: 'hive',
className: 'HiveController', className: 'HiveController',
create: async (dtp) => { return new HiveController(dtp); }, create: async (dtp) => { return new HiveController(dtp); },
}; };

@ -93,8 +93,8 @@ class HiveKaleidoscopeController extends SiteController {
} }
module.exports = { module.exports = {
name: 'hiveKaleidoscope', logId: 'hive-kaleidoscope',
slug: 'hive-kaleidoscope', index: 'hiveKaleidoscope',
className: 'HiveKaleidoscopeController', className: 'HiveKaleidoscopeController',
create: async (dtp) => { return new HiveKaleidoscopeController(dtp); }, create: async (dtp) => { return new HiveKaleidoscopeController(dtp); },
}; };

@ -149,8 +149,8 @@ class HiveUserController extends SiteController {
} }
module.exports = { module.exports = {
name: 'hiveUser', logId: 'hive-user',
slug: 'hive-user', index: 'hiveUser',
className: 'HiveUserController', className: 'HiveUserController',
create: async (dtp) => { return new HiveUserController(dtp); }, create: async (dtp) => { return new HiveUserController(dtp); },
}; };

@ -96,9 +96,10 @@ class HomeController extends SiteController {
} }
module.exports = { module.exports = {
isHome: true, logId: 'home',
slug: 'home', index: 'home',
name: 'home',
className: 'HomeController', className: 'HomeController',
create: async (dtp) => { return new HomeController(dtp); }, create: async (dtp) => { return new HomeController(dtp); },
isHome: true,
}; };

@ -135,8 +135,8 @@ class ImageController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'image', logId: 'image',
name: 'image', index: 'image',
className: 'ImageController', className: 'ImageController',
create: async (dtp) => { return new ImageController(dtp); }, create: async (dtp) => { return new ImageController(dtp); },
}; };

@ -22,7 +22,7 @@ class ManifestController extends SiteController {
dtp.app.use('/manifest.json', router); dtp.app.use('/manifest.json', router);
router.use(async (req, res, next) => { router.use(async (req, res, next) => {
res.locals.currentView = this.component.slug; res.locals.currentView = this.component.logId;
return next(); return next();
}); });
@ -64,8 +64,8 @@ class ManifestController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'manifest', logId: 'manifest',
name: 'manifest', index: 'manifest',
className: 'ManifestController', className: 'ManifestController',
create: async (dtp) => { return new ManifestController(dtp); }, create: async (dtp) => { return new ManifestController(dtp); },
}; };

@ -24,7 +24,7 @@ class NewsletterController extends SiteController {
dtp.app.use('/newsletter', router); dtp.app.use('/newsletter', router);
router.use(async (req, res, next) => { router.use(async (req, res, next) => {
res.locals.currentView = module.exports.slug; res.locals.currentView = module.exports.logId;
return next(); return next();
}); });
@ -92,8 +92,8 @@ class NewsletterController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'newsletter', logId: 'newsletter',
name: 'newsletter', index: 'newsletter',
className: 'NewsletterController', className: 'NewsletterController',
create: async (dtp) => { return new NewsletterController(dtp); }, create: async (dtp) => { return new NewsletterController(dtp); },
}; };

@ -23,7 +23,7 @@ class NewsroomController extends SiteController {
dtp.app.use('/newsroom', router); dtp.app.use('/newsroom', router);
router.use(async (req, res, next) => { router.use(async (req, res, next) => {
res.locals.currentView = module.exports.slug; res.locals.currentView = module.exports.logId;
return next(); return next();
}); });
@ -165,8 +165,8 @@ class NewsroomController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'newsroom', logId: 'newsroom',
name: 'newsroom', index: 'newsroom',
className: 'NewsroomController', className: 'NewsroomController',
create: (dtp) => { return new NewsroomController(dtp); }, create: (dtp) => { return new NewsroomController(dtp); },
}; };

@ -72,8 +72,8 @@ class NotificationController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'notification', logId: 'notification',
name: 'notification', index: 'notification',
className: 'NotificationController', className: 'NotificationController',
create: async (dtp) => { return new NotificationController(dtp); }, create: async (dtp) => { return new NotificationController(dtp); },
}; };

@ -645,8 +645,8 @@ class UserController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'user', logId: 'user',
name: 'user', index: 'user',
className: 'UserController', className: 'UserController',
create: async (dtp) => { return new UserController(dtp); }, create: async (dtp) => { return new UserController(dtp); },
}; };

@ -9,7 +9,7 @@ const path = require('path');
const express = require('express'); const express = require('express');
const captcha = require('svg-captcha'); const captcha = require('svg-captcha');
const { SiteController/*, SiteError */ } = require('../../lib/site-lib'); const { SiteController } = require('../../lib/site-lib');
class WelcomeController extends SiteController { class WelcomeController extends SiteController {
@ -120,8 +120,8 @@ class WelcomeController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'welcome', logId: 'welcome',
name: 'welcome', index: 'welcome',
className: 'WelcomeController', className: 'WelcomeController',
create: async (dtp) => { return new WelcomeController(dtp); }, create: async (dtp) => { return new WelcomeController(dtp); },
}; };

@ -21,8 +21,9 @@ const LOG_LEVEL_LIST = [
const LogSchema = new Schema({ const LogSchema = new Schema({
created: { type: Date, default: Date.now, required: true, index: -1, expires: '7d' }, created: { type: Date, default: Date.now, required: true, index: -1, expires: '7d' },
component: { component: {
name: { type: String, required: true }, logId: { type: String, required: true, index: 1 },
slug: { type: String, required: true, index: 1 }, index: { type: String, required: true },
className: { type: String, required: true, index: 1 },
}, },
level: { type: String, enum: LOG_LEVEL_LIST, required: true, index: true }, level: { type: String, enum: LOG_LEVEL_LIST, required: true, index: true },
message: { type: String }, message: { type: String },

@ -116,8 +116,8 @@ class AnnouncementService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'announcement', logId: 'announcement',
name: 'announcement', index: 'announcement',
className: 'AnnouncementService', className: 'AnnouncementService',
create: (dtp) => { return new AnnouncementService(dtp); }, create: (dtp) => { return new AnnouncementService(dtp); },
}; };

@ -211,8 +211,8 @@ class AttachmentService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'attachment', logId: 'attachment',
name: 'attachment', index: 'attachment',
className: 'AttachmentService', className: 'AttachmentService',
create: (dtp) => { return new AttachmentService(dtp); }, create: (dtp) => { return new AttachmentService(dtp); },
}; };

@ -57,8 +57,8 @@ class CacheService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'cache', logId: 'cache',
name: 'cache', index: 'cache',
className: 'CacheService', className: 'CacheService',
create: (dtp) => { return new CacheService(dtp); }, create: (dtp) => { return new CacheService(dtp); },
}; };

@ -862,8 +862,8 @@ class ChatService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'chat', logId: 'chat',
name: 'chat', index: 'chat',
className: 'ChatService', className: 'ChatService',
create: (dtp) => { return new ChatService(dtp); }, create: (dtp) => { return new ChatService(dtp); },
}; };

@ -350,8 +350,8 @@ class CommentService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'comment', logId: 'comment',
name: 'comment', index: 'comment',
className: 'CommentService', className: 'CommentService',
create: (dtp) => { return new CommentService(dtp); }, create: (dtp) => { return new CommentService(dtp); },
}; };

@ -127,8 +127,8 @@ class ContentReportService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'content-report', logId: 'content-report',
name: 'contentReport', index: 'contentReport',
className: 'ContentReportService', className: 'ContentReportService',
create: (dtp) => { return new ContentReportService(dtp); }, create: (dtp) => { return new ContentReportService(dtp); },
}; };

@ -117,8 +117,8 @@ class ContentVoteService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'content-vote', logId: 'content-vote',
name: 'contentVote', index: 'contentVote',
className: 'ContentVoteService', className: 'ContentVoteService',
create: (dtp) => { return new ContentVoteService(dtp); }, create: (dtp) => { return new ContentVoteService(dtp); },
}; };

@ -812,8 +812,8 @@ class CoreNodeService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'core-node', logId: 'core-node',
name: 'coreNode', index: 'coreNode',
className: 'CoreNodeService', className: 'CoreNodeService',
create: (dtp) => { return new CoreNodeService(dtp); }, create: (dtp) => { return new CoreNodeService(dtp); },
}; };

@ -58,8 +58,8 @@ class CryptoService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'crypto', logId: 'crypto',
name: 'crypto', index: 'crypto',
className: 'CryptoService', className: 'CryptoService',
create: (dtp) => { return new CryptoService(dtp); }, create: (dtp) => { return new CryptoService(dtp); },
}; };

@ -76,8 +76,8 @@ class CsrfTokenService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'csrf-token', logId: 'csrf-token',
name: 'csrfToken', index: 'csrfToken',
className: 'CsrfTokenService', className: 'CsrfTokenService',
create: (dtp) => { return new CsrfTokenService(dtp); }, create: (dtp) => { return new CsrfTokenService(dtp); },
}; };

@ -270,8 +270,8 @@ class DashboardService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'dashboard', logId: 'dashboard',
name: 'dashboard', index: 'dashboard',
className: 'DashboardService', className: 'DashboardService',
create: (dtp) => { return new DashboardService(dtp); }, create: (dtp) => { return new DashboardService(dtp); },
}; };

@ -150,8 +150,8 @@ class DisplayEngineService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'display-engine', logId: 'display-engine',
name: 'displayEngine', index: 'displayEngine',
className: 'DisplayEngineService', className: 'DisplayEngineService',
create: (dtp) => { return new DisplayEngineService(dtp); }, create: (dtp) => { return new DisplayEngineService(dtp); },
}; };

@ -171,8 +171,8 @@ class EmailService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'email', logId: 'email',
name: 'email', index: 'email',
className: 'EmailService', className: 'EmailService',
create: (dtp) => { return new EmailService(dtp); }, create: (dtp) => { return new EmailService(dtp); },
}; };

@ -296,8 +296,8 @@ class FeedService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'feed', logId: 'feed',
name: 'feed', index: 'feed',
className: 'FeedService', className: 'FeedService',
create: (dtp) => { return new FeedService(dtp); }, create: (dtp) => { return new FeedService(dtp); },
}; };

@ -330,8 +330,8 @@ class HiveService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'hive', logId: 'hive',
name: 'hive', index: 'hive',
className: 'HiveService', className: 'HiveService',
create: (dtp) => { return new HiveService(dtp); }, create: (dtp) => { return new HiveService(dtp); },
}; };

@ -97,8 +97,8 @@ class HostCacheService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'host-cache', logId: 'host-cache',
name: 'hostCache', index: 'hostCache',
className: 'HostCacheService', className: 'HostCacheService',
create: (dtp) => { return new HostCacheService(dtp); }, create: (dtp) => { return new HostCacheService(dtp); },
}; };

@ -371,8 +371,8 @@ class ImageService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'image', logId: 'image',
name: 'image', index: 'image',
className: 'ImageService', className: 'ImageService',
create: (dtp) => { return new ImageService(dtp); }, create: (dtp) => { return new ImageService(dtp); },
}; };

@ -62,8 +62,8 @@ class JobQueueService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'job-queue', logId: 'job-queue',
name: 'jobQueue', index: 'jobQueue',
className: 'JobQueueService', className: 'JobQueueService',
create: (dtp) => { return new JobQueueService(dtp); }, create: (dtp) => { return new JobQueueService(dtp); },
}; };

@ -69,8 +69,8 @@ class LimiterService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'limiter', logId: 'limiter',
name: 'limiter', index: 'limiter',
className: 'LimiterService', className: 'LimiterService',
create: (dtp) => { return new LimiterService(dtp); }, create: (dtp) => { return new LimiterService(dtp); },
}; };

@ -26,8 +26,8 @@ class SystemLogService extends SiteService {
return logs; return logs;
} }
async getComponentSlugs ( ) { async getComponentIds ( ) {
return await Log.distinct('component.slug'); return await Log.distinct('component.logId');
} }
async getTotalCount ( ) { async getTotalCount ( ) {
@ -38,8 +38,8 @@ class SystemLogService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'log', logId: 'log',
name: 'log', index: 'log',
className: 'SystemLogService', className: 'SystemLogService',
create: (dtp) => { return new SystemLogService(dtp); }, create: (dtp) => { return new SystemLogService(dtp); },
}; };

@ -68,8 +68,8 @@ class LoganService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'logan', logId: 'logan',
name: 'logan', index: 'logan',
className: 'LoganService', className: 'LoganService',
create: (dtp) => { return new LoganService(dtp); }, create: (dtp) => { return new LoganService(dtp); },
}; };

@ -32,8 +32,8 @@ class MarkdownService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'markdown', logId: 'markdown',
name: 'markdown', index: 'markdown',
className: 'MarkdownService', className: 'MarkdownService',
create: (dtp) => { return new MarkdownService(dtp); }, create: (dtp) => { return new MarkdownService(dtp); },
}; };

@ -94,8 +94,8 @@ class MediaService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'media', logId: 'media',
name: 'media', index: 'media',
className: 'MediaService', className: 'MediaService',
create: (dtp) => { return new MediaService(dtp); }, create: (dtp) => { return new MediaService(dtp); },
}; };

@ -97,8 +97,8 @@ class MinioService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'minio', logId: 'minio',
name: 'minio', index: 'minio',
className: 'MinioService', className: 'MinioService',
create: (dtp) => { return new MinioService(dtp); }, create: (dtp) => { return new MinioService(dtp); },
}; };

@ -117,8 +117,8 @@ class NewsletterService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'newsletter', logId: 'newsletter',
name: 'newsletter', index: 'newsletter',
className: 'NewsletterService', className: 'NewsletterService',
create: (dtp) => { return new NewsletterService(dtp); }, create: (dtp) => { return new NewsletterService(dtp); },
}; };

@ -474,8 +474,8 @@ class OAuth2Service extends SiteService {
} }
module.exports = { module.exports = {
slug: 'oauth2', logId: 'oauth2',
name: 'oauth2', index: 'oauth2',
className: 'OAuth2Service', className: 'OAuth2Service',
create: (dtp) => { return new OAuth2Service(dtp); }, create: (dtp) => { return new OAuth2Service(dtp); },
}; };

@ -238,8 +238,8 @@ class OtpAuthService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'otp-auth', logId: 'otp-auth',
name: 'otpAuth', index: 'otpAuth',
className: 'OtpAuthService', className: 'OtpAuthService',
create: (dtp) => { return new OtpAuthService(dtp); }, create: (dtp) => { return new OtpAuthService(dtp); },
}; };

@ -55,8 +55,8 @@ class PhoneService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'phone', logId: 'phone',
name: 'phone', index: 'phone',
className: 'PhoneService', className: 'PhoneService',
create: (dtp) => { return new PhoneService(dtp); }, create: (dtp) => { return new PhoneService(dtp); },
}; };

@ -118,8 +118,8 @@ class ResourceService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'resource', logId: 'resource',
name: 'resource', index: 'resource',
className: 'ResourceService', className: 'ResourceService',
create: (dtp) => { return new ResourceService(dtp); }, create: (dtp) => { return new ResourceService(dtp); },
}; };

@ -110,8 +110,8 @@ class SessionService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'session', logId: 'session',
name: 'session', index: 'session',
className: 'SessionService', className: 'SessionService',
create: (dtp) => { return new SessionService(dtp); }, create: (dtp) => { return new SessionService(dtp); },
}; };

@ -47,8 +47,8 @@ class SmsService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'sms', logId: 'sms',
name: 'sms', index: 'sms',
className: 'SmsService', className: 'SmsService',
create: (dtp) => { return new SmsService(dtp); }, create: (dtp) => { return new SmsService(dtp); },
}; };

@ -208,8 +208,8 @@ class StickerService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'sticker', logId: 'sticker',
name: 'sticker', index: 'sticker',
className: 'StickerService', className: 'StickerService',
create: (dtp) => { return new StickerService(dtp); }, create: (dtp) => { return new StickerService(dtp); },
}; };

@ -135,8 +135,8 @@ class UserNotificationService extends SiteService {
} }
module.exports = { module.exports = {
name: 'userNotification', logId: 'user-notification',
slug: 'user-notification', index: 'userNotification',
className: 'UserNotificationService', className: 'UserNotificationService',
create: (dtp) => { return new UserNotificationService(dtp); }, create: (dtp) => { return new UserNotificationService(dtp); },
}; };

@ -1079,8 +1079,8 @@ class UserService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'user', logId: 'user',
name: 'user', index: 'user',
className: 'UserService', className: 'UserService',
create: (dtp) => { return new UserService(dtp); }, create: (dtp) => { return new UserService(dtp); },
}; };

@ -37,7 +37,7 @@ block content
tr tr
td= moment(log.created).format('YYYY-MM-DD hh:mm:ss.SSS') td= moment(log.created).format('YYYY-MM-DD hh:mm:ss.SSS')
td= log.level td= log.level
td= log.component.slug td= log.component.logId
td td
div= log.message div= log.message
if log.metadata if log.metadata

@ -17,7 +17,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { name: 'chatWorker', slug: 'chat-worker' }, component: { logId: 'chat-worker', index: 'chatWorker', className: 'ChatWorker' },
}; };
module.config.site = require(path.join(module.rootPath, 'config', 'site')); module.config.site = require(path.join(module.rootPath, 'config', 'site'));

@ -16,8 +16,9 @@ class ChatRoomClearJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'charRoomClearJob', logId: 'chat-room-clear-job',
slug: 'chat-room-clear-job', index: 'charRoomClearJob',
className: 'ChatRoomClearJob',
}; };
} }

@ -25,8 +25,9 @@ class ChatRoomDeleteJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'chatRoomProcessor', logId: 'chat-room-processor',
slug: 'chat-room-processor', index: 'chatRoomProcessor',
className: 'ChatRoomDeleteJob',
}; };
} }

@ -32,9 +32,9 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { name: 'hostServicesWorker', slug: 'host-services-worker' },
site: require(path.join(module.rootPath, 'config', 'site')), site: require(path.join(module.rootPath, 'config', 'site')),
http: require(path.join(module.rootPath, 'config', 'http')), http: require(path.join(module.rootPath, 'config', 'http')),
component: { logId: 'host-services-worker', index: 'hostServicesWorker', className: 'HostServicesWorker' },
}; };
module.log = new SiteLog(module, module.config.component); module.log = new SiteLog(module, module.config.component);
@ -125,7 +125,7 @@ class HostCacheTransaction {
constructor (dtp, message, rinfo) { constructor (dtp, message, rinfo) {
this.dtp = dtp; this.dtp = dtp;
this.created = Date.now(); // timestamp, not Date instance this.created = Date.now(); // timestamp, not Date instance
this.component = { name: 'Host Cache Transaction', slug: 'host-cache-transaction' }; this.component = { logId: 'host-cache-transaction', index: 'hostCacheTransaction', className: 'HostCacheTransaction' };
this.log = new SiteLog(dtp, this.component); this.log = new SiteLog(dtp, this.component);
this.message = message; this.message = message;
@ -238,7 +238,11 @@ class HostCacheTransaction {
class TransactionManager { class TransactionManager {
constructor (dtp) { constructor (dtp) {
this.dtp = dtp; this.dtp = dtp;
this.component = { name: 'Transaction Manager', slug: 'transaction-manager' }; this.component = {
logId: 'transaction-manager',
index: 'transactionManager',
className: 'TransactionManager',
};
this.log = new SiteLog(dtp, this.component); this.log = new SiteLog(dtp, this.component);
this.transactions = { }; this.transactions = { };
} }

@ -15,8 +15,8 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { name: 'LoganSiteWorker', slug: 'logan-site-worker' },
site: require(path.join(module.rootPath, 'config', 'site')), site: require(path.join(module.rootPath, 'config', 'site')),
component: { logId: 'logan-site-worker', index: 'LoganSiteWorker', className: 'LoganSiteWorker' },
}; };
class LoganSiteWorker extends SiteWorker { class LoganSiteWorker extends SiteWorker {

@ -15,7 +15,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: path.resolve(__dirname, '..', '..'), root: path.resolve(__dirname, '..', '..'),
component: { name: 'mediaWorker', slug: 'media-worker' }, component: { logId: 'media-worker', index: 'mediaWorker', className: 'MediaWorker' },
}; };
/** /**
@ -71,7 +71,7 @@ class MediaWorker extends SiteWorker {
(async ( ) => { (async ( ) => {
try { try {
module.log = new SiteLog(module, module.config.component); module.log = new SiteLog(module, module.config.component);
await SitePlatform.startPlatform(module, module.config.component); await SitePlatform.start(module, module.config.component);
module.worker = new MediaWorker(module); module.worker = new MediaWorker(module);
await module.worker.start(); await module.worker.start();

@ -15,8 +15,9 @@ class AttachmentDeleteJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'attachmentDeleteJob', logId: 'attachment-delete-job',
slug: 'attachment-delete-job', index: 'attachmentDeleteJob',
className: 'AttachmentDeleteJob',
}; };
} }

@ -19,8 +19,9 @@ class AttachmentIngestJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'attachmentIngestJob', logId: 'attachment-ingest-job',
slug: 'attachment-ingest-job', index: 'attachmentIngestJob',
className: 'AttachmentIngestJob',
}; };
} }
@ -80,7 +81,7 @@ class AttachmentIngestJob extends SiteWorkerProcess {
job.data.workPath = path.join( job.data.workPath = path.join(
process.env.DTP_ATTACHMENT_WORK_PATH, process.env.DTP_ATTACHMENT_WORK_PATH,
AttachmentIngestJob.COMPONENT.slug, AttachmentIngestJob.COMPONENT.logId,
attachment._id.toString(), attachment._id.toString(),
); );

@ -15,8 +15,9 @@ class StickerDeleteJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'stickerDeleteJob', logId: 'sticker-delete-job',
slug: 'sticker-delete-job', index: 'stickerDeleteJob',
className: 'StickerDeleteJob',
}; };
} }

@ -20,8 +20,9 @@ class StickerIngestJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'stickerIngestJob', logId: 'sticker-ingest-job',
slug: 'sticker-ingest-job', index: 'stickerIngestJob',
className: 'StickerIngestJob',
}; };
} }
@ -74,7 +75,7 @@ class StickerIngestJob extends SiteWorkerProcess {
job.data.workPath = path.join( job.data.workPath = path.join(
process.env.DTP_STICKER_WORK_PATH, process.env.DTP_STICKER_WORK_PATH,
this.dtp.config.component.slug, this.dtp.config.component.logId,
job.data.sticker._id.toString(), job.data.sticker._id.toString(),
); );

@ -17,8 +17,9 @@ class WebpageScreenshotJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'webpageScreenshotJob', logId: 'webpage-screenshot-job',
slug: 'webpage-screenshot-job', index: 'webpageScreenshotJob',
className: 'WebpageScreenshotJob',
}; };
} }

@ -11,8 +11,8 @@ const { SiteWorker, SiteLog } = require(path.join(__dirname, '..', '..', 'lib',
module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json')); module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
component: { name: 'newsletterWorker', slug: 'newsletter-worker' },
root: path.resolve(__dirname, '..', '..'), root: path.resolve(__dirname, '..', '..'),
component: { logId: 'newsletter-worker', index: 'newsletterWorker', className: 'NewsletterWorker' },
}; };
class NewsletterWorker extends SiteWorker { class NewsletterWorker extends SiteWorker {

@ -12,8 +12,9 @@ class NewsletterEmailSendJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'newsletterEmailSendJob', logId: 'newsletter-email-send-job',
slug: 'newsletter-email-send-job', index: 'newsletterEmailSendJob',
className: 'NewsletterEmailSendJob',
}; };
} }

@ -17,8 +17,9 @@ class NewsletterTransmitJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'newsletterTransmitJob', logId: 'newsletter-transmit-job',
slug: 'newsletter-transmit-job', index: 'newsletterTransmitJob',
className: 'NewsletterTransmitJob',
}; };
} }

@ -23,7 +23,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { name: 'newsroom', slug: 'newsroom' }, component: { logId: 'newsroom', index: 'newsroom', className: 'NewsroomWorker' },
}; };
module.config.site = require(path.join(module.rootPath, 'config', 'site')); module.config.site = require(path.join(module.rootPath, 'config', 'site'));

@ -17,8 +17,9 @@ class UpdateFeedsCron extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'updateFeeds', logId: 'update-feeds-cron',
slug: 'update-feeds-cron', index: 'updateFeeds',
className: 'UpdateFeedsCron',
}; };
} }

@ -12,8 +12,9 @@ class UpdateFeedJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'newsroomUpdateFeedJob', logId: 'newsroom-update-feed-job',
slug: 'newsroom-update-feed-job', index: 'newsroomUpdateFeedJob',
className: 'UpdateFeedJob',
}; };
} }

@ -19,7 +19,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { name: 'reeeper', slug: 'reeeper' }, component: { logId: 'reeeper', index: 'reeeper', className: 'ReeeperWorker' },
}; };
module.config.site = require(path.join(module.rootPath, 'config', 'site')); module.config.site = require(path.join(module.rootPath, 'config', 'site'));

@ -29,8 +29,9 @@ class ExpiredAnnouncementsCron extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'expiredAnnouncementsCron', logId: 'expired-announcements-cron',
slug: 'expired-announcements-cron', index: 'expiredAnnouncementsCron',
className: 'ExpiredAnnouncementsCron',
}; };
} }

@ -28,8 +28,9 @@ class CrashedHostsCron extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'crashedHostsCron', logId: 'crashed-hosts-cron',
slug: 'crashed-hosts-cron', index: 'crashedHostsCron',
className: 'CrashedHostsCron',
}; };
} }

@ -30,14 +30,12 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
name: 'archiveUserLocalJob', logId: 'archive-user-local-job',
slug: 'archive-user-local-job', index: 'archiveUserLocalJob',
className: 'ArchiveUserLocalJob',
}; };
} }
static get JOB_NAME ( ) { return 'Local User Archive'; }
static get JOB_SLUG ( ) { return 'archive-user-local'; }
constructor (worker) { constructor (worker) {
super(worker, ArchiveUserLocalJob.COMPONENT); super(worker, ArchiveUserLocalJob.COMPONENT);
this.jobs = new Set(); this.jobs = new Set();
@ -48,8 +46,8 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
this.queue = await this.getJobQueue('reeeper', this.dtp.config.jobQueues.reeeper); this.queue = await this.getJobQueue('reeeper', this.dtp.config.jobQueues.reeeper);
this.log.info('registering job processor', { queue: this.queue.name, job: ArchiveUserLocalJob.JOB_SLUG }); this.log.info('registering job processor', { queue: this.queue.name });
this.queue.process(ArchiveUserLocalJob.JOB_SLUG, 1, this.processArchiveUserLocal.bind(this)); this.queue.process('archive-user-local', 1, this.processArchiveUserLocal.bind(this));
} }
async stop ( ) { async stop ( ) {
@ -70,7 +68,7 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
async processArchiveUserLocal (job) { async processArchiveUserLocal (job) {
const { user: userService } = this.dtp.services; const { user: userService } = this.dtp.services;
try { try {
job.data.archivePath = path.join('/tmp', this.dtp.pkg.name, ArchiveUserLocalJob.JOB_SLUG); job.data.archivePath = path.join('/tmp', this.dtp.pkg.name, 'archive-user-local');
this.jobs.add(job); this.jobs.add(job);
job.data.userId = mongoose.Types.ObjectId(job.data.userId); job.data.userId = mongoose.Types.ObjectId(job.data.userId);
@ -135,7 +133,7 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
delete job.data.workPath; delete job.data.workPath;
} }
this.jobs.delete(job); this.jobs.delete(job);
this.log.info('job complete', { job: job.id, name: ArchiveUserLocalJob.JOB_NAME }); this.log.info('job complete', { job: job.id });
} }
} }

@ -152,9 +152,9 @@ module.shutdown = async ( ) => {
}); });
try { try {
await SitePlatform.startPlatform(module); await SitePlatform.start(module);
} catch (error) { } catch (error) {
module.log.error(`failed to start DTP ${module.config.component.slug} process`, { error }); module.log.error(`failed to start DTP ${module.config.component.className} process`, { error });
return; return;
} }

@ -4,8 +4,6 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Sites CLI', slug: 'sites-cli' };
require('dotenv').config(); require('dotenv').config();
const path = require('path'); const path = require('path');
@ -22,10 +20,10 @@ const {
module.rootPath = __dirname; module.rootPath = __dirname;
module.pkg = require(path.join(module.rootPath, 'package.json')); module.pkg = require(path.join(module.rootPath, 'package.json'));
module.config = { module.config = {
component: DTP_COMPONENT,
root: module.rootPath, root: module.rootPath,
site: require(path.join(module.rootPath, 'config', 'site')), site: require(path.join(module.rootPath, 'config', 'site')),
http: require(path.join(module.rootPath, 'config', 'http')), http: require(path.join(module.rootPath, 'config', 'http')),
component: { logId: 'sites-cli', index: 'sitesCli', className: 'SitesCli' },
}; };
module.log = new SiteLog(module, module.config.component); module.log = new SiteLog(module, module.config.component);
@ -234,9 +232,9 @@ module.updatePageCache = async ( ) => {
]); ]);
try { try {
await SitePlatform.startPlatform(module); await SitePlatform.start(module);
} catch (error) { } catch (error) {
module.log.error(`failed to start DTP ${module.config.component.slug} platform`, { error }); module.log.error(`failed to start DTP ${module.config.component.className} platform`, { error });
return; return;
} }

@ -4,7 +4,11 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Sites', slug: 'sites' }; const DTP_COMPONENT = {
logId: 'sites-app',
index: 'sitesApp',
className: 'SitesApp',
};
require('dotenv').config(); require('dotenv').config();
@ -76,7 +80,7 @@ module.shutdown = async ( ) => {
}); });
try { try {
await SitePlatform.startPlatform(module); await SitePlatform.start(module);
await SitePlatform.startWebServer(module); await SitePlatform.startWebServer(module);
} catch (error) { } catch (error) {
module.log.error(`failed to start DTP ${module.config.component.name}`, { error }); module.log.error(`failed to start DTP ${module.config.component.name}`, { error });

@ -113,13 +113,13 @@ export default class DtpWebLog {
if (!this.enabled) { return; } if (!this.enabled) { return; }
if (data) { if (data) {
console[method]('%c%s%c: %s', console[method]('%c%s%c: %s',
css.label, `${this.component.slug}.${event}`, css.label, `${this.component.logId}.${event}`,
css.message, msg, css.message, msg,
data, data,
); );
} else { } else {
console[method]('%c%s%c: %s', console[method]('%c%s%c: %s',
css.label, `${this.component.slug}.${event}`, css.label, `${this.component.logId}.${event}`,
css.message, msg, css.message, msg,
); );
} }

@ -37,7 +37,12 @@ class SiteCommon extends EventEmitter2 {
this.options = options; this.options = options;
this.dtp = dtp; this.dtp = dtp;
this.component = component;
this.component = {
logId: component.logId,
index: component.index,
className: component.className,
};
this.log = new SiteLog(dtp, component); this.log = new SiteLog(dtp, component);
this.appTemplateRoot = path.join(this.dtp.config.root, 'app', 'templates'); this.appTemplateRoot = path.join(this.dtp.config.root, 'app', 'templates');
@ -62,7 +67,7 @@ class SiteCommon extends EventEmitter2 {
} }
getEventName (name) { getEventName (name) {
return `dtp.${this.component.slug}.${name}`; return `dtp.${this.component.logId}.${name}`;
} }
async emitDtpEvent (name, params) { async emitDtpEvent (name, params) {

@ -39,12 +39,12 @@ class SiteController extends SiteCommon {
createMulter (slug, options) { createMulter (slug, options) {
if (!!slug && (typeof slug === 'object')) { if (!!slug && (typeof slug === 'object')) {
options = slug; options = slug;
slug = this.component.slug; slug = this.component.logId;
} else { } else {
slug = slug || this.component.slug; slug = slug || this.component.logId;
} }
options = Object.assign({ options = Object.assign({
dest: `/tmp/${this.dtp.config.site.domainKey}/${slug}/${this.component.slug}` dest: `/tmp/${this.dtp.config.site.domainKey}/${slug}`,
}, options || { }); }, options || { });
return multer(options); return multer(options);

@ -4,7 +4,6 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'I/O Server', slug: 'ioserver', prefix: 'srv' };
const path = require('path'); const path = require('path');
const Redis = require('ioredis'); const Redis = require('ioredis');
@ -14,15 +13,13 @@ const ConnectToken = mongoose.model('ConnectToken');
const marked = require('marked'); const marked = require('marked');
const { SiteLog } = require(path.join(__dirname, 'site-log'));
const { SiteCommon } = require(path.join(__dirname, 'site-common')); const { SiteCommon } = require(path.join(__dirname, 'site-common'));
class SiteIoServer extends SiteCommon { class SiteIoServer extends SiteCommon {
constructor (dtp) { constructor (dtp) {
super(dtp, { name: 'ioServer', slug: 'io-server' }); super(dtp, { logId: 'io-server', index: 'ioServer', className: 'SiteIoServer' });
this.dtp = dtp; this.dtp = dtp;
this.log = new SiteLog(dtp, DTP_COMPONENT);
} }
async start (httpServer) { async start (httpServer) {

@ -37,7 +37,10 @@ class SiteLog {
} }
this.dtp = dtp; this.dtp = dtp;
if (!component || !component.slug || !component.name) { if (!component ||
!component.logId ||
!component.index ||
!component.className) {
throw new Error('Must specify DTP component'); throw new Error('Must specify DTP component');
} }
this.component = component; this.component = component;
@ -83,7 +86,7 @@ class SiteLog {
async writeLog (level, message, metadata) { async writeLog (level, message, metadata) {
const NOW = new Date(); const NOW = new Date();
const ctimestamp = color.black(moment(NOW).format('YYYY-MM-DD HH:mm:ss.SSS')); const ctimestamp = color.black(moment(NOW).format('YYYY-MM-DD HH:mm:ss.SSS'));
const ccomponentSlug = color.cyan(this.component.slug); const ccomponentSlug = color.cyan(this.component.logId);
const cmessage = color.darkGray(message); const cmessage = color.darkGray(message);
let clevel = level.padEnd(5); let clevel = level.padEnd(5);
@ -121,8 +124,13 @@ class SiteLog {
if (LogModel && (process.env.DTP_LOG_MONGODB === 'enabled')) { if (LogModel && (process.env.DTP_LOG_MONGODB === 'enabled')) {
try { try {
const component = { name: this.component.name, slug: this.component.slug }; await LogModel.create({
await LogModel.create({ created: NOW, level, component, message, metadata }); created: NOW,
component: this.component,
level,
message,
metadata,
});
} catch (error) { } catch (error) {
console.log( console.log(
'failed to write log entry to MongoDB', 'failed to write log entry to MongoDB',
@ -135,7 +143,7 @@ class SiteLog {
if (LogStream && (process.env.DTP_LOG_FILE === 'enabled')) { if (LogStream && (process.env.DTP_LOG_FILE === 'enabled')) {
const logEntry = { const logEntry = {
t: NOW, c: this.component.slug, l: level, m: message, d: metadata, t: NOW, c: this.component.logId, l: level, m: message, d: metadata,
}; };
LogStream.write(`${JSON.stringify(logEntry)}\n`); LogStream.write(`${JSON.stringify(logEntry)}\n`);
} }

@ -123,14 +123,13 @@ module.getRedisKeys = (pattern) => {
}; };
module.loadServices = async (dtp) => { module.loadServices = async (dtp) => {
dtp.services = module.services = { }; dtp.services = { };
const scripts = glob.sync(path.join(dtp.config.root, 'app', 'services', '*.js')); const scripts = glob.sync(path.join(dtp.config.root, 'app', 'services', '*.js'));
const inits = [ ]; const inits = [ ];
await SiteAsync.each(scripts, async (script) => { await SiteAsync.each(scripts, async (script) => {
const service = await require(script); const service = await require(script);
module.services[service.name] = service.create(dtp); dtp.services[service.index] = service.create(dtp);
module.services[service.name].__dtp_service_name = service.name; inits.push(dtp.services[service.index]);
inits.push(module.services[service.name]);
}); });
await SiteAsync.each(inits, async (service) => { await SiteAsync.each(inits, async (service) => {
await service.start(); await service.start();
@ -146,8 +145,12 @@ module.loadControllers = async (dtp) => {
await SiteAsync.each(scripts, async (script) => { await SiteAsync.each(scripts, async (script) => {
const controller = await require(script); const controller = await require(script);
controller.instance = await controller.create(dtp); controller.instance = await controller.create(dtp);
module.log.info('controller loaded', { name: controller.name, slug: controller.slug }); module.log.info('controller loaded', {
dtp.controllers[controller.name] = controller; logId: controller.logId,
index: controller.index,
className: controller.className,
});
dtp.controllers[controller.index] = controller;
inits.push(controller); inits.push(controller);
}); });
@ -180,7 +183,7 @@ module.loadControllers = async (dtp) => {
}); });
}; };
module.exports.startPlatform = async (dtp) => { module.exports.start = async (dtp) => {
try { try {
module.log = new SiteLog(module, dtp.config.component); module.log = new SiteLog(module, dtp.config.component);
@ -343,9 +346,9 @@ module.exports.startWebServer = async (dtp) => {
module.app.use(passport.initialize()); module.app.use(passport.initialize());
module.app.use(passport.session()); module.app.use(passport.session());
module.services.oauth2.registerPassport(); dtp.services.oauth2.registerPassport();
module.app.use(module.services.session.middleware()); module.app.use(dtp.services.session.middleware());
module.app.use(module.services.userNotification.middleware({ withNotifications: false })); module.app.use(dtp.services.userNotification.middleware({ withNotifications: false }));
/* /*
* Application logic middleware * Application logic middleware
@ -412,17 +415,16 @@ module.exports.startWebServer = async (dtp) => {
await module.createHttpsServer(dtp, module.app); await module.createHttpsServer(dtp, module.app);
} }
// prefer to attach Socket.io to the HTTPS server and fall back to HTTP
await module.createSocketServer(dtp, module.https || module.http);
if (module.http) { if (module.http) {
await module.createSocketServer(dtp, module.http);
await module.startHttpServer(dtp, module.http, dtp.config.http); await module.startHttpServer(dtp, module.http, dtp.config.http);
} }
if (module.https) { if (module.https) {
await module.createSocketServer(dtp, module.https);
await module.startHttpServer(dtp, module.https, dtp.config.https); await module.startHttpServer(dtp, module.https, dtp.config.https);
} }
module.log.info(`${dtp.config.component.name} platform online`, { module.log.info(`${dtp.config.component.className} platform online`, {
http: dtp.config.http.port, http: dtp.config.http.port,
https: dtp.config.https.port, https: dtp.config.https.port,
}); });

@ -48,7 +48,7 @@ class SiteWorker extends SiteCommon {
/* /*
* Site Platform startup * Site Platform startup
*/ */
await SitePlatform.startPlatform(this.dtp); await SitePlatform.start(this.dtp);
} catch (error) { } catch (error) {
this.log.error('failed to start worker', { this.log.error('failed to start worker', {
component: this.dtp.config.component, component: this.dtp.config.component,
@ -70,7 +70,7 @@ class SiteWorker extends SiteCommon {
const processor = new ProcessorClass(this); const processor = new ProcessorClass(this);
const { COMPONENT } = ProcessorClass; const { COMPONENT } = ProcessorClass;
this.log.info('loading worker processor', { component: COMPONENT.name }); this.log.info('loading worker processor', { component: COMPONENT.logId });
this.processors[COMPONENT.name] = processor; this.processors[COMPONENT.name] = processor;
return processor; return processor;

Loading…
Cancel
Save