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 = {
slug: 'admin',
name: 'admin',
logId: 'admin',
index: 'admin',
className: 'AdminController',
create: async (dtp) => { return new AdminController(dtp); },
};

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

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

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

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

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

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

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

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

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

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

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

@ -16,7 +16,7 @@ class OtpAdminController extends SiteController {
}
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();
router.use(async (req, res, next) => {
@ -49,8 +49,8 @@ class OtpAdminController extends SiteController {
}
module.exports = {
name: 'adminOtp',
slug: 'admin-opt',
logId: 'admin-otp',
index: 'adminOtp',
className: 'OtpAdminController',
create: async (dtp) => { return new OtpAdminController(dtp); },
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -17,7 +17,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = {
environment: process.env.NODE_ENV,
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'));

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

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

@ -32,9 +32,9 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = {
environment: process.env.NODE_ENV,
root: module.rootPath,
component: { name: 'hostServicesWorker', slug: 'host-services-worker' },
site: require(path.join(module.rootPath, 'config', 'site')),
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);
@ -125,7 +125,7 @@ class HostCacheTransaction {
constructor (dtp, message, rinfo) {
this.dtp = dtp;
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.message = message;
@ -238,7 +238,11 @@ class HostCacheTransaction {
class TransactionManager {
constructor (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.transactions = { };
}

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

@ -15,7 +15,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = {
environment: process.env.NODE_ENV,
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 ( ) => {
try {
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);
await module.worker.start();

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

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

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

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

@ -17,8 +17,9 @@ class WebpageScreenshotJob extends SiteWorkerProcess {
static get COMPONENT ( ) {
return {
name: 'webpageScreenshotJob',
slug: 'webpage-screenshot-job',
logId: '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.config = {
component: { name: 'newsletterWorker', slug: 'newsletter-worker' },
root: path.resolve(__dirname, '..', '..'),
component: { logId: 'newsletter-worker', index: 'newsletterWorker', className: 'NewsletterWorker' },
};
class NewsletterWorker extends SiteWorker {

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

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

@ -23,7 +23,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = {
environment: process.env.NODE_ENV,
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'));

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

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

@ -19,7 +19,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = {
environment: process.env.NODE_ENV,
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'));

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

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

@ -30,14 +30,12 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
static get COMPONENT ( ) {
return {
name: 'archiveUserLocalJob',
slug: 'archive-user-local-job',
logId: '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) {
super(worker, ArchiveUserLocalJob.COMPONENT);
this.jobs = new Set();
@ -48,8 +46,8 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
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.queue.process(ArchiveUserLocalJob.JOB_SLUG, 1, this.processArchiveUserLocal.bind(this));
this.log.info('registering job processor', { queue: this.queue.name });
this.queue.process('archive-user-local', 1, this.processArchiveUserLocal.bind(this));
}
async stop ( ) {
@ -70,7 +68,7 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
async processArchiveUserLocal (job) {
const { user: userService } = this.dtp.services;
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);
job.data.userId = mongoose.Types.ObjectId(job.data.userId);
@ -135,7 +133,7 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
delete job.data.workPath;
}
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 {
await SitePlatform.startPlatform(module);
await SitePlatform.start(module);
} 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;
}

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

@ -4,7 +4,11 @@
'use strict';
const DTP_COMPONENT = { name: 'Sites', slug: 'sites' };
const DTP_COMPONENT = {
logId: 'sites-app',
index: 'sitesApp',
className: 'SitesApp',
};
require('dotenv').config();
@ -76,7 +80,7 @@ module.shutdown = async ( ) => {
});
try {
await SitePlatform.startPlatform(module);
await SitePlatform.start(module);
await SitePlatform.startWebServer(module);
} catch (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 (data) {
console[method]('%c%s%c: %s',
css.label, `${this.component.slug}.${event}`,
css.label, `${this.component.logId}.${event}`,
css.message, msg,
data,
);
} else {
console[method]('%c%s%c: %s',
css.label, `${this.component.slug}.${event}`,
css.label, `${this.component.logId}.${event}`,
css.message, msg,
);
}

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

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

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

@ -37,7 +37,10 @@ class SiteLog {
}
this.dtp = dtp;
if (!component || !component.slug || !component.name) {
if (!component ||
!component.logId ||
!component.index ||
!component.className) {
throw new Error('Must specify DTP component');
}
this.component = component;
@ -83,7 +86,7 @@ class SiteLog {
async writeLog (level, message, metadata) {
const NOW = new Date();
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);
let clevel = level.padEnd(5);
@ -121,8 +124,13 @@ class SiteLog {
if (LogModel && (process.env.DTP_LOG_MONGODB === 'enabled')) {
try {
const component = { name: this.component.name, slug: this.component.slug };
await LogModel.create({ created: NOW, level, component, message, metadata });
await LogModel.create({
created: NOW,
component: this.component,
level,
message,
metadata,
});
} catch (error) {
console.log(
'failed to write log entry to MongoDB',
@ -135,7 +143,7 @@ class SiteLog {
if (LogStream && (process.env.DTP_LOG_FILE === 'enabled')) {
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`);
}

@ -123,14 +123,13 @@ module.getRedisKeys = (pattern) => {
};
module.loadServices = async (dtp) => {
dtp.services = module.services = { };
dtp.services = { };
const scripts = glob.sync(path.join(dtp.config.root, 'app', 'services', '*.js'));
const inits = [ ];
await SiteAsync.each(scripts, async (script) => {
const service = await require(script);
module.services[service.name] = service.create(dtp);
module.services[service.name].__dtp_service_name = service.name;
inits.push(module.services[service.name]);
dtp.services[service.index] = service.create(dtp);
inits.push(dtp.services[service.index]);
});
await SiteAsync.each(inits, async (service) => {
await service.start();
@ -146,8 +145,12 @@ module.loadControllers = async (dtp) => {
await SiteAsync.each(scripts, async (script) => {
const controller = await require(script);
controller.instance = await controller.create(dtp);
module.log.info('controller loaded', { name: controller.name, slug: controller.slug });
dtp.controllers[controller.name] = controller;
module.log.info('controller loaded', {
logId: controller.logId,
index: controller.index,
className: controller.className,
});
dtp.controllers[controller.index] = controller;
inits.push(controller);
});
@ -180,7 +183,7 @@ module.loadControllers = async (dtp) => {
});
};
module.exports.startPlatform = async (dtp) => {
module.exports.start = async (dtp) => {
try {
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.session());
module.services.oauth2.registerPassport();
module.app.use(module.services.session.middleware());
module.app.use(module.services.userNotification.middleware({ withNotifications: false }));
dtp.services.oauth2.registerPassport();
module.app.use(dtp.services.session.middleware());
module.app.use(dtp.services.userNotification.middleware({ withNotifications: false }));
/*
* Application logic middleware
@ -412,17 +415,16 @@ module.exports.startWebServer = async (dtp) => {
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) {
await module.createSocketServer(dtp, module.http);
await module.startHttpServer(dtp, module.http, dtp.config.http);
}
if (module.https) {
await module.createSocketServer(dtp, module.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,
https: dtp.config.https.port,
});

@ -48,7 +48,7 @@ class SiteWorker extends SiteCommon {
/*
* Site Platform startup
*/
await SitePlatform.startPlatform(this.dtp);
await SitePlatform.start(this.dtp);
} catch (error) {
this.log.error('failed to start worker', {
component: this.dtp.config.component,
@ -70,7 +70,7 @@ class SiteWorker extends SiteCommon {
const processor = new ProcessorClass(this);
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;
return processor;

Loading…
Cancel
Save