Browse Source

component management

Finally standardizing on the DTP Component definition:
{
  logId: 'my-service',
  index: 'myService',
  className: 'MyService',
}

And I'm not too far from using UUIDs in there, too, so I have one (1)
standard way of referencing them.
develop
Rob Colbert 10 months ago
parent
commit
c8df274a82
  1. 4
      app/controllers/admin.js
  2. 4
      app/controllers/admin/announcement.js
  3. 4
      app/controllers/admin/attachment.js
  4. 4
      app/controllers/admin/content-report.js
  5. 4
      app/controllers/admin/core-node.js
  6. 4
      app/controllers/admin/core-user.js
  7. 4
      app/controllers/admin/host.js
  8. 4
      app/controllers/admin/image.js
  9. 4
      app/controllers/admin/job-queue.js
  10. 6
      app/controllers/admin/log.js
  11. 4
      app/controllers/admin/newsletter.js
  12. 4
      app/controllers/admin/newsroom.js
  13. 6
      app/controllers/admin/otp.js
  14. 4
      app/controllers/admin/service-node.js
  15. 4
      app/controllers/admin/settings.js
  16. 4
      app/controllers/admin/user.js
  17. 4
      app/controllers/announcement.js
  18. 4
      app/controllers/auth.js
  19. 4
      app/controllers/chat.js
  20. 6
      app/controllers/comment.js
  21. 4
      app/controllers/email.js
  22. 6
      app/controllers/form.js
  23. 6
      app/controllers/hive.js
  24. 4
      app/controllers/hive/kaleidoscope.js
  25. 4
      app/controllers/hive/user.js
  26. 7
      app/controllers/home.js
  27. 6
      app/controllers/image.js
  28. 8
      app/controllers/manifest.js
  29. 8
      app/controllers/newsletter.js
  30. 6
      app/controllers/newsroom.js
  31. 4
      app/controllers/notification.js
  32. 6
      app/controllers/user.js
  33. 8
      app/controllers/welcome.js
  34. 5
      app/models/log.js
  35. 4
      app/services/announcement.js
  36. 4
      app/services/attachment.js
  37. 4
      app/services/cache.js
  38. 4
      app/services/chat.js
  39. 4
      app/services/comment.js
  40. 4
      app/services/content-report.js
  41. 4
      app/services/content-vote.js
  42. 4
      app/services/core-node.js
  43. 4
      app/services/crypto.js
  44. 4
      app/services/csrf-token.js
  45. 4
      app/services/dashboard.js
  46. 4
      app/services/display-engine.js
  47. 4
      app/services/email.js
  48. 4
      app/services/feed.js
  49. 4
      app/services/hive.js
  50. 4
      app/services/host-cache.js
  51. 4
      app/services/image.js
  52. 4
      app/services/job-queue.js
  53. 4
      app/services/limiter.js
  54. 8
      app/services/log.js
  55. 4
      app/services/logan.js
  56. 4
      app/services/markdown.js
  57. 4
      app/services/media.js
  58. 6
      app/services/minio.js
  59. 6
      app/services/newsletter.js
  60. 4
      app/services/oauth2.js
  61. 6
      app/services/otp-auth.js
  62. 4
      app/services/phone.js
  63. 6
      app/services/resource.js
  64. 4
      app/services/session.js
  65. 4
      app/services/sms.js
  66. 4
      app/services/sticker.js
  67. 4
      app/services/user-notification.js
  68. 4
      app/services/user.js
  69. 2
      app/views/admin/log/index.pug
  70. 2
      app/workers/chat.js
  71. 5
      app/workers/chat/job/chat-room-clear.js
  72. 5
      app/workers/chat/job/chat-room-delete.js
  73. 8
      app/workers/host-services.js
  74. 2
      app/workers/logan.js
  75. 2
      app/workers/media.js
  76. 5
      app/workers/media/job/attachment-delete.js
  77. 7
      app/workers/media/job/attachment-ingest.js
  78. 5
      app/workers/media/job/sticker-delete.js
  79. 7
      app/workers/media/job/sticker-ingest.js
  80. 5
      app/workers/media/job/webpage-screenshot.js
  81. 2
      app/workers/newsletter.js
  82. 5
      app/workers/newsletter/job/email-send.js
  83. 5
      app/workers/newsletter/job/transmit.js
  84. 2
      app/workers/newsroom.js
  85. 5
      app/workers/newsroom/cron/update-feeds.js
  86. 5
      app/workers/newsroom/job/update-feed.js
  87. 2
      app/workers/reeeper.js
  88. 5
      app/workers/reeeper/cron/expire-announcements.js
  89. 5
      app/workers/reeeper/cron/expire-crashed-hosts.js
  90. 16
      app/workers/reeeper/job/archive-user-local.js
  91. 2
      dtp-media-engine.js
  92. 2
      dtp-webapp-cli.js
  93. 6
      dtp-webapp.js
  94. 4
      lib/client/js/dtp-log.js
  95. 9
      lib/site-common.js
  96. 6
      lib/site-controller.js
  97. 5
      lib/site-ioserver.js
  98. 18
      lib/site-log.js
  99. 23
      lib/site-platform.js
  100. 2
      lib/site-worker.js

4
app/controllers/admin.js

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

4
app/controllers/admin/announcement.js

@ -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); },
};

4
app/controllers/admin/attachment.js

@ -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); },
};

4
app/controllers/admin/content-report.js

@ -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); },
};

4
app/controllers/admin/core-node.js

@ -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); },
};

4
app/controllers/admin/core-user.js

@ -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); },
};

4
app/controllers/admin/host.js

@ -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); },
};

4
app/controllers/admin/image.js

@ -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); },
};

4
app/controllers/admin/job-queue.js

@ -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); },
};

6
app/controllers/admin/log.js

@ -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); },
};

4
app/controllers/admin/newsletter.js

@ -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); },
};

4
app/controllers/admin/newsroom.js

@ -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); },
};

6
app/controllers/admin/otp.js

@ -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); },
};

4
app/controllers/admin/service-node.js

@ -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); },
};

4
app/controllers/admin/settings.js

@ -98,8 +98,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); },
};

4
app/controllers/admin/user.js

@ -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); },
};

4
app/controllers/announcement.js

@ -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); },
};

4
app/controllers/auth.js

@ -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); },
};

4
app/controllers/chat.js

@ -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); },
};

6
app/controllers/comment.js

@ -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); },
};

4
app/controllers/email.js

@ -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); },
};

6
app/controllers/form.js

@ -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); },
};

6
app/controllers/hive.js

@ -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); },
};

4
app/controllers/hive/kaleidoscope.js

@ -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); },
};

4
app/controllers/hive/user.js

@ -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); },
};

7
app/controllers/home.js

@ -93,9 +93,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,
};

6
app/controllers/image.js

@ -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); },
};
};

8
app/controllers/manifest.js

@ -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); },
};
};

8
app/controllers/newsletter.js

@ -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); },
};
};

6
app/controllers/newsroom.js

@ -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); },
};

4
app/controllers/notification.js

@ -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); },
};

6
app/controllers/user.js

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

8
app/controllers/welcome.js

@ -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); },
};
};

5
app/models/log.js

@ -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 },

4
app/services/announcement.js

@ -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); },
};

4
app/services/attachment.js

@ -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); },
};

4
app/services/cache.js

@ -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); },
};

4
app/services/chat.js

@ -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); },
};

4
app/services/comment.js

@ -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); },
};

4
app/services/content-report.js

@ -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); },
};

4
app/services/content-vote.js

@ -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); },
};

4
app/services/core-node.js

@ -803,8 +803,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); },
};

4
app/services/crypto.js

@ -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); },
};

4
app/services/csrf-token.js

@ -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); },
};

4
app/services/dashboard.js

@ -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); },
};

4
app/services/display-engine.js

@ -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); },
};

4
app/services/email.js

@ -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); },
};

4
app/services/feed.js

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

4
app/services/hive.js

@ -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); },
};

4
app/services/host-cache.js

@ -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); },
};

4
app/services/image.js

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

4
app/services/job-queue.js

@ -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); },
};

4
app/services/limiter.js

@ -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); },
};

8
app/services/log.js

@ -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); },
};

4
app/services/logan.js

@ -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); },
};

4
app/services/markdown.js

@ -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); },
};

4
app/services/media.js

@ -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); },
};

6
app/services/minio.js

@ -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); },
};
};

6
app/services/newsletter.js

@ -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); },
};
};

4
app/services/oauth2.js

@ -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); },
};

6
app/services/otp-auth.js

@ -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); },
};
};

4
app/services/phone.js

@ -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); },
};

6
app/services/resource.js

@ -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); },
};
};

4
app/services/session.js

@ -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); },
};

4
app/services/sms.js

@ -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); },
};

4
app/services/sticker.js

@ -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); },
};

4
app/services/user-notification.js

@ -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); },
};

4
app/services/user.js

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

2
app/views/admin/log/index.pug

@ -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

2
app/workers/chat.js

@ -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'));

5
app/workers/chat/job/chat-room-clear.js

@ -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',
};
}

5
app/workers/chat/job/chat-room-delete.js

@ -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',
};
}

8
app/workers/host-services.js

@ -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);
@ -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 = { };
}

2
app/workers/logan.js

@ -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 {

2
app/workers/media.js

@ -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' },
};
/**

5
app/workers/media/job/attachment-delete.js

@ -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',
};
}

7
app/workers/media/job/attachment-ingest.js

@ -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(),
);

5
app/workers/media/job/sticker-delete.js

@ -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',
};
}

7
app/workers/media/job/sticker-ingest.js

@ -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(),
);

5
app/workers/media/job/webpage-screenshot.js

@ -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',
};
}

2
app/workers/newsletter.js

@ -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 {

5
app/workers/newsletter/job/email-send.js

@ -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',
};
}

5
app/workers/newsletter/job/transmit.js

@ -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',
};
}

2
app/workers/newsroom.js

@ -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'));

5
app/workers/newsroom/cron/update-feeds.js

@ -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',
};
}

5
app/workers/newsroom/job/update-feed.js

@ -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',
};
}

2
app/workers/reeeper.js

@ -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'));

5
app/workers/reeeper/cron/expire-announcements.js

@ -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',
};
}

5
app/workers/reeeper/cron/expire-crashed-hosts.js

@ -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',
};
}

16
app/workers/reeeper/job/archive-user-local.js

@ -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);
@ -130,7 +128,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 });
}
}

2
dtp-media-engine.js

@ -154,7 +154,7 @@ module.shutdown = async ( ) => {
try {
await SitePlatform.startPlatform(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;
}

2
dtp-webapp-cli.js

@ -225,7 +225,7 @@ module.requestCoreConnect = async (host) => {
try {
await SitePlatform.startPlatform(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;
}

6
dtp-webapp.js

@ -4,7 +4,11 @@
'use strict';
const DTP_COMPONENT = { name: 'Sample App', slug: 'webapp' };
const DTP_COMPONENT = {
logId: 'webapp',
index: 'webApp',
className: 'BaseSampleApp',
};
require('dotenv').config();

4
lib/client/js/dtp-log.js

@ -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,
);
}

9
lib/site-common.js

@ -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) {

6
lib/site-controller.js

@ -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);

5
lib/site-ioserver.js

@ -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) {

18
lib/site-log.js

@ -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`);
}

23
lib/site-platform.js

@ -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);
});
@ -342,9 +345,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
@ -421,7 +424,7 @@ module.exports.startWebServer = async (dtp) => {
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,
});

2
lib/site-worker.js

@ -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