@oneuptime/common 11.3.19 → 11.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +173 -0
  2. package/Models/DatabaseModels/GlobalConfig.ts +39 -0
  3. package/Models/DatabaseModels/Index.ts +2 -0
  4. package/Server/API/DashboardAPI.ts +221 -0
  5. package/Server/API/EnterpriseLicenseAPI.ts +279 -12
  6. package/Server/API/GlobalConfigAPI.ts +81 -16
  7. package/Server/API/StatusPageAPI.ts +894 -791
  8. package/Server/EnvironmentConfig.ts +9 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1783161406136-AddInstanceIdToGlobalConfig.ts +23 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/1783226868418-AddEnterpriseLicenseInstance.ts +47 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  12. package/Server/Services/EnterpriseLicenseInstanceService.ts +10 -0
  13. package/Server/Services/Index.ts +2 -0
  14. package/Server/Services/IoTDeviceService.ts +99 -4
  15. package/Server/Services/StatusPageService.ts +104 -45
  16. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +6 -4
  17. package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +7 -6
  18. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +6 -4
  19. package/Server/Utils/Telemetry/IoTSnapshotScan.ts +45 -7
  20. package/ServiceRoute.ts +4 -0
  21. package/Tests/Server/Services/IoTDeviceService.test.ts +280 -0
  22. package/Tests/Server/Utils/Monitor/Criteria/TelemetryStepMetricAlias.test.ts +390 -0
  23. package/Tests/Server/Utils/Telemetry/IoTSnapshotScan.test.ts +202 -0
  24. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +165 -0
  25. package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +18 -0
  26. package/Types/Monitor/MonitorStep.ts +32 -0
  27. package/UI/Components/EditionLabel/EditionLabel.tsx +172 -0
  28. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +125 -0
  29. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +197 -0
  30. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -0
  31. package/build/dist/Models/DatabaseModels/GlobalConfig.js +39 -0
  32. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  33. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  34. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  35. package/build/dist/Server/API/DashboardAPI.js +166 -16
  36. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  37. package/build/dist/Server/API/EnterpriseLicenseAPI.js +203 -13
  38. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  39. package/build/dist/Server/API/GlobalConfigAPI.js +62 -15
  40. package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
  41. package/build/dist/Server/API/StatusPageAPI.js +74 -31
  42. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  43. package/build/dist/Server/EnvironmentConfig.js +6 -0
  44. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  45. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783161406136-AddInstanceIdToGlobalConfig.js +14 -0
  46. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783161406136-AddInstanceIdToGlobalConfig.js.map +1 -0
  47. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783226868418-AddEnterpriseLicenseInstance.js +22 -0
  48. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783226868418-AddEnterpriseLicenseInstance.js.map +1 -0
  49. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  50. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  51. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +9 -0
  52. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -0
  53. package/build/dist/Server/Services/Index.js +2 -0
  54. package/build/dist/Server/Services/Index.js.map +1 -1
  55. package/build/dist/Server/Services/IoTDeviceService.js +66 -4
  56. package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
  57. package/build/dist/Server/Services/StatusPageService.js +91 -43
  58. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  59. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +4 -5
  60. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  61. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +6 -5
  62. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
  63. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +9 -9
  64. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
  65. package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js +33 -2
  66. package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js.map +1 -1
  67. package/build/dist/ServiceRoute.js +1 -0
  68. package/build/dist/ServiceRoute.js.map +1 -1
  69. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.js +2 -0
  70. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.js.map +1 -0
  71. package/build/dist/Types/Monitor/MonitorStep.js +25 -0
  72. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  73. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +92 -0
  74. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  75. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +83 -0
  76. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -0
  77. package/package.json +1 -1
@@ -335,9 +335,48 @@ const PUBLIC_DASHBOARD_RESOURCES = {
335
335
  },
336
336
  },
337
337
  };
338
+ /*
339
+ * Resolve the :dashboardIdOrDomain route param to a dashboard ID. Accepts
340
+ * either a dashboard ID (UUID) or a verified custom dashboard domain —
341
+ * same contract as the status page overview endpoint.
342
+ */
343
+ const resolveDashboardIdOrThrow = async (dashboardIdOrDomain) => {
344
+ if (!dashboardIdOrDomain) {
345
+ throw new NotFoundException("Dashboard not found");
346
+ }
347
+ if (dashboardIdOrDomain.includes(".")) {
348
+ const dashboardDomain = await DashboardDomainService.findOneBy({
349
+ query: {
350
+ fullDomain: dashboardIdOrDomain,
351
+ domain: {
352
+ isVerified: true,
353
+ },
354
+ },
355
+ select: {
356
+ dashboardId: true,
357
+ },
358
+ props: {
359
+ isRoot: true,
360
+ },
361
+ });
362
+ if (!dashboardDomain || !dashboardDomain.dashboardId) {
363
+ throw new NotFoundException("Dashboard not found");
364
+ }
365
+ return dashboardDomain.dashboardId;
366
+ }
367
+ try {
368
+ ObjectID.validateUUID(dashboardIdOrDomain);
369
+ return new ObjectID(dashboardIdOrDomain);
370
+ }
371
+ catch (err) {
372
+ logger.error(`Error converting dashboardIdOrDomain to ObjectID: ${dashboardIdOrDomain}`);
373
+ logger.error(err);
374
+ throw new NotFoundException("Dashboard not found");
375
+ }
376
+ };
338
377
  export default class DashboardAPI extends BaseAPI {
339
378
  constructor() {
340
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
379
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
341
380
  super(Dashboard, DashboardService);
342
381
  // SEO endpoint - resolve dashboard by ID or domain
343
382
  this.router.get(`${(_a = new this.entityType()
@@ -404,8 +443,76 @@ export default class DashboardAPI extends BaseAPI {
404
443
  next(err);
405
444
  }
406
445
  });
446
+ /*
447
+ * Shared handler for the public overview endpoint. Registered for both
448
+ * POST and GET (machine-readable access for crawlers / AI agents that
449
+ * only issue plain GET requests — discovered via llms.txt on public
450
+ * dashboard URLs) so the authentication and authorization path can
451
+ * never drift between the two methods. It does not read req.body.
452
+ */
453
+ const overviewHandler = async (req, res, next) => {
454
+ var _a;
455
+ try {
456
+ const dashboardId = await resolveDashboardIdOrThrow(req.params["dashboardIdOrDomain"]);
457
+ // Check read access (handles public check, IP whitelist, master password)
458
+ const accessResult = await DashboardService.hasReadAccess({
459
+ dashboardId,
460
+ req,
461
+ });
462
+ if (!accessResult.hasReadAccess) {
463
+ throw (accessResult.error ||
464
+ new BadDataException("Access denied to this dashboard."));
465
+ }
466
+ const dashboard = await DashboardService.findOneById({
467
+ id: dashboardId,
468
+ select: {
469
+ _id: true,
470
+ name: true,
471
+ description: true,
472
+ pageTitle: true,
473
+ pageDescription: true,
474
+ dashboardViewConfig: true,
475
+ },
476
+ props: {
477
+ isRoot: true,
478
+ },
479
+ });
480
+ if (!dashboard) {
481
+ throw new NotFoundException("Dashboard not found");
482
+ }
483
+ /*
484
+ * Everything below is derived from columns the public /metadata and
485
+ * /view-config endpoints already serve to anonymous viewers — the
486
+ * overview only reshapes them into a single GET-able document.
487
+ */
488
+ return Response.sendJsonObjectResponse(req, res, {
489
+ _id: ((_a = dashboard._id) === null || _a === void 0 ? void 0 : _a.toString()) || "",
490
+ name: dashboard.name || "Dashboard",
491
+ description: dashboard.description || "",
492
+ pageTitle: dashboard.pageTitle || "",
493
+ pageDescription: dashboard.pageDescription || "",
494
+ components: DashboardAPI.buildPublicComponentSummaries(dashboard.dashboardViewConfig),
495
+ metricsUsed: Array.from(DashboardAPI.collectDashboardMetricNames(dashboard.dashboardViewConfig)).sort(),
496
+ dashboardViewConfig: dashboard.dashboardViewConfig
497
+ ? JSONFunctions.serialize(dashboard.dashboardViewConfig)
498
+ : null,
499
+ });
500
+ }
501
+ catch (err) {
502
+ next(err);
503
+ }
504
+ };
505
+ const overviewApiPath = `${(_b = new this.entityType()
506
+ .getCrudApiPath()) === null || _b === void 0 ? void 0 : _b.toString()}/overview/:dashboardIdOrDomain`;
507
+ this.router.post(overviewApiPath, UserMiddleware.getUserMiddleware, overviewHandler);
508
+ /*
509
+ * GET variant of the overview endpoint. Same middleware and same handler
510
+ * as the POST route above — non-public dashboards are rejected for
511
+ * unauthenticated callers exactly as they are on POST.
512
+ */
513
+ this.router.get(overviewApiPath, UserMiddleware.getUserMiddleware, overviewHandler);
407
514
  // Domain resolution endpoint
408
- this.router.post(`${(_b = new this.entityType().getCrudApiPath()) === null || _b === void 0 ? void 0 : _b.toString()}/domain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
515
+ this.router.post(`${(_c = new this.entityType().getCrudApiPath()) === null || _c === void 0 ? void 0 : _c.toString()}/domain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
409
516
  try {
410
517
  if (!req.body["domain"]) {
411
518
  throw new BadDataException("domain is required in request body");
@@ -438,8 +545,8 @@ export default class DashboardAPI extends BaseAPI {
438
545
  }
439
546
  });
440
547
  // Metadata endpoint - returns dashboard info for the public viewer
441
- this.router.post(`${(_c = new this.entityType()
442
- .getCrudApiPath()) === null || _c === void 0 ? void 0 : _c.toString()}/metadata/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
548
+ this.router.post(`${(_d = new this.entityType()
549
+ .getCrudApiPath()) === null || _d === void 0 ? void 0 : _d.toString()}/metadata/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
443
550
  var _a;
444
551
  try {
445
552
  const dashboardId = new ObjectID(req.params["dashboardId"]);
@@ -486,8 +593,8 @@ export default class DashboardAPI extends BaseAPI {
486
593
  }
487
594
  });
488
595
  // Public view-config endpoint - returns dashboard view config for the public viewer
489
- this.router.post(`${(_d = new this.entityType()
490
- .getCrudApiPath()) === null || _d === void 0 ? void 0 : _d.toString()}/view-config/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
596
+ this.router.post(`${(_e = new this.entityType()
597
+ .getCrudApiPath()) === null || _e === void 0 ? void 0 : _e.toString()}/view-config/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
491
598
  var _a;
492
599
  try {
493
600
  const dashboardId = new ObjectID(req.params["dashboardId"]);
@@ -546,8 +653,8 @@ export default class DashboardAPI extends BaseAPI {
546
653
  * Authorization reuses DashboardService.hasReadAccess (public flag, IP
547
654
  * whitelist, master password) — never falls back to project-wide read.
548
655
  */
549
- this.router.post(`${(_e = new this.entityType()
550
- .getCrudApiPath()) === null || _e === void 0 ? void 0 : _e.toString()}/attribute-values/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
656
+ this.router.post(`${(_f = new this.entityType()
657
+ .getCrudApiPath()) === null || _f === void 0 ? void 0 : _f.toString()}/attribute-values/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
551
658
  try {
552
659
  const dashboardId = new ObjectID(req.params["dashboardId"]);
553
660
  const accessResult = await DashboardService.hasReadAccess({
@@ -609,8 +716,8 @@ export default class DashboardAPI extends BaseAPI {
609
716
  * Authorization reuses DashboardService.hasReadAccess (public flag, IP
610
717
  * whitelist, master password) — never falls back to project-wide read.
611
718
  */
612
- this.router.post(`${(_f = new this.entityType()
613
- .getCrudApiPath()) === null || _f === void 0 ? void 0 : _f.toString()}/metric-types/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
719
+ this.router.post(`${(_g = new this.entityType()
720
+ .getCrudApiPath()) === null || _g === void 0 ? void 0 : _g.toString()}/metric-types/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
614
721
  try {
615
722
  const dashboardId = new ObjectID(req.params["dashboardId"]);
616
723
  const accessResult = await DashboardService.hasReadAccess({
@@ -690,8 +797,8 @@ export default class DashboardAPI extends BaseAPI {
690
797
  * never another tenant's. Authorization reuses
691
798
  * DashboardService.hasReadAccess.
692
799
  */
693
- this.router.post(`${(_g = new this.entityType()
694
- .getCrudApiPath()) === null || _g === void 0 ? void 0 : _g.toString()}/metrics-aggregate/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
800
+ this.router.post(`${(_h = new this.entityType()
801
+ .getCrudApiPath()) === null || _h === void 0 ? void 0 : _h.toString()}/metrics-aggregate/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
695
802
  try {
696
803
  const dashboardId = new ObjectID(req.params["dashboardId"]);
697
804
  const accessResult = await DashboardService.hasReadAccess({
@@ -766,8 +873,8 @@ export default class DashboardAPI extends BaseAPI {
766
873
  * read the data the widget was built to show, for this dashboard's
767
874
  * project. Authorization reuses DashboardService.hasReadAccess.
768
875
  */
769
- this.router.post(`${(_h = new this.entityType()
770
- .getCrudApiPath()) === null || _h === void 0 ? void 0 : _h.toString()}/resource-list/:dashboardId/:resourceType`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
876
+ this.router.post(`${(_j = new this.entityType()
877
+ .getCrudApiPath()) === null || _j === void 0 ? void 0 : _j.toString()}/resource-list/:dashboardId/:resourceType`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
771
878
  try {
772
879
  const resourceType = req.params["resourceType"];
773
880
  const config = PUBLIC_DASHBOARD_RESOURCES[resourceType];
@@ -780,8 +887,8 @@ export default class DashboardAPI extends BaseAPI {
780
887
  next(err);
781
888
  }
782
889
  });
783
- this.router.post(`${(_j = new this.entityType()
784
- .getCrudApiPath()) === null || _j === void 0 ? void 0 : _j.toString()}/master-password/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
890
+ this.router.post(`${(_k = new this.entityType()
891
+ .getCrudApiPath()) === null || _k === void 0 ? void 0 : _k.toString()}/master-password/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
785
892
  try {
786
893
  if (!req.params["dashboardId"]) {
787
894
  throw new BadDataException("Dashboard ID not found");
@@ -828,6 +935,49 @@ export default class DashboardAPI extends BaseAPI {
828
935
  }
829
936
  });
830
937
  }
938
+ /*
939
+ * Build a compact machine-readable summary of the widgets on a dashboard
940
+ * for the public overview endpoint. Derived entirely from the stored
941
+ * dashboardViewConfig (already served to public viewers by /view-config) —
942
+ * this only lifts out the human-meaningful fields (widget type, title,
943
+ * text, metric names). The config comes straight from a JSON column, so
944
+ * every field is read defensively.
945
+ */
946
+ static buildPublicComponentSummaries(dashboardViewConfig) {
947
+ const summaries = [];
948
+ const components = dashboardViewConfig && typeof dashboardViewConfig === "object"
949
+ ? dashboardViewConfig["components"]
950
+ : undefined;
951
+ if (!Array.isArray(components)) {
952
+ return summaries;
953
+ }
954
+ for (const component of components) {
955
+ if (!component || typeof component !== "object") {
956
+ continue;
957
+ }
958
+ const componentObject = component;
959
+ const argumentsObject = componentObject["arguments"] &&
960
+ typeof componentObject["arguments"] === "object"
961
+ ? componentObject["arguments"]
962
+ : {};
963
+ const getStringArgument = (key) => {
964
+ const value = argumentsObject[key];
965
+ return typeof value === "string" && value.trim().length > 0
966
+ ? value
967
+ : null;
968
+ };
969
+ summaries.push({
970
+ componentType: typeof componentObject["componentType"] === "string"
971
+ ? componentObject["componentType"]
972
+ : "",
973
+ title: getStringArgument("chartTitle") || getStringArgument("title"),
974
+ description: getStringArgument("chartDescription"),
975
+ text: getStringArgument("text"),
976
+ metricNames: Array.from(DashboardAPI.collectDashboardMetricNames(component)).sort(),
977
+ });
978
+ }
979
+ return summaries;
980
+ }
831
981
  /*
832
982
  * Walk a stored dashboard view config and collect every metric name it
833
983
  * references (chart/value/gauge/table widgets all carry their metric in a
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardAPI.js","sourceRoot":"","sources":["../../../../Server/API/DashboardAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DashboardAPI.js","sourceRoot":"","sources":["../../../../Server/API/DashboardAPI.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
1
  import EnterpriseLicense from "../../Models/DatabaseModels/EnterpriseLicense";
2
+ import EnterpriseLicenseInstance from "../../Models/DatabaseModels/EnterpriseLicenseInstance";
2
3
  import BadDataException from "../../Types/Exception/BadDataException";
4
+ import EnterpriseLicenseUsageUtil from "../../Utils/EnterpriseLicense/EnterpriseLicenseUsage";
5
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
6
+ import SortOrder from "../../Types/BaseDatabase/SortOrder";
3
7
  import EnterpriseLicenseService from "../Services/EnterpriseLicenseService";
8
+ import EnterpriseLicenseInstanceService from "../Services/EnterpriseLicenseInstanceService";
4
9
  import UserMiddleware from "../Middleware/UserAuthorization";
5
10
  import JSONWebToken from "../Utils/JsonWebToken";
6
11
  import OneUptimeDate from "../../Types/Date";
7
12
  import Response from "../Utils/Response";
8
13
  import BaseAPI from "./BaseAPI";
9
- // import { Host } from "../EnvironmentConfig";
14
+ /*
15
+ * Bounds how many instance rows one license key can register. Real customers
16
+ * run a handful of instances; this stops a leaked key from being used to
17
+ * fill the table with junk rows.
18
+ */
19
+ const MAX_INSTANCES_PER_LICENSE = 100;
10
20
  export default class EnterpriseLicenseAPI extends BaseAPI {
11
21
  constructor() {
12
22
  var _a, _b;
@@ -30,6 +40,7 @@ export default class EnterpriseLicenseAPI extends BaseAPI {
30
40
  licenseKey: licenseKey,
31
41
  },
32
42
  select: {
43
+ _id: true,
33
44
  companyName: true,
34
45
  expiresAt: true,
35
46
  licenseKey: true,
@@ -53,6 +64,21 @@ export default class EnterpriseLicenseAPI extends BaseAPI {
53
64
  if (secondsUntilExpiry <= 0) {
54
65
  throw new BadDataException("License key has expired");
55
66
  }
67
+ /*
68
+ * The validating instance sends its instanceId and host so it
69
+ * shows up in the instance list right away (usage is reported
70
+ * later by the daily job on the instance).
71
+ */
72
+ const instanceId = this.parseShortText(req.body["instanceId"]);
73
+ const instanceHost = this.parseShortText(req.body["host"]);
74
+ if (instanceId) {
75
+ await this.upsertLicenseInstance({
76
+ licenseId: license.id,
77
+ instanceId: instanceId,
78
+ host: instanceHost || undefined,
79
+ });
80
+ }
81
+ const instances = await this.findLicenseInstances(license.id);
56
82
  const payload = {
57
83
  companyName: license.companyName || "",
58
84
  expiresAt: license.expiresAt.toISOString(),
@@ -71,6 +97,7 @@ export default class EnterpriseLicenseAPI extends BaseAPI {
71
97
  userCountUpdatedAt: license.userCountUpdatedAt
72
98
  ? license.userCountUpdatedAt.toISOString()
73
99
  : null,
100
+ instances: this.getInstanceSummaries(instances),
74
101
  token,
75
102
  });
76
103
  }
@@ -108,21 +135,51 @@ export default class EnterpriseLicenseAPI extends BaseAPI {
108
135
  throw new BadDataException("License key is invalid");
109
136
  }
110
137
  const reportedAt = OneUptimeDate.getCurrentDate();
111
- await EnterpriseLicenseService.updateOneById({
112
- id: license.id,
113
- data: {
114
- currentUserCount: userCount,
115
- userCountUpdatedAt: reportedAt,
116
- },
117
- props: {
118
- isRoot: true,
119
- ignoreHooks: true,
120
- },
121
- });
138
+ const instanceId = this.parseShortText(req.body["instanceId"]);
139
+ const instanceHost = this.parseShortText(req.body["host"]);
140
+ const userEmailHashes = EnterpriseLicenseUsageUtil.sanitizeUserEmailHashes(req.body["userEmailHashes"]);
141
+ if (instanceId) {
142
+ /*
143
+ * Multi-instance report: track usage per instance and count
144
+ * users uniquely across all instances of this license.
145
+ */
146
+ await this.upsertLicenseInstance({
147
+ licenseId: license.id,
148
+ instanceId: instanceId,
149
+ host: instanceHost || undefined,
150
+ userCount: userCount,
151
+ userEmailHashes: userEmailHashes,
152
+ lastReportedAt: reportedAt,
153
+ });
154
+ }
155
+ const instances = await this.findLicenseInstances(license.id);
156
+ let currentUserCount = userCount;
157
+ if (instances.length > 0) {
158
+ currentUserCount = EnterpriseLicenseUsageUtil.getUniqueUserCount(instances, reportedAt);
159
+ }
160
+ /*
161
+ * Legacy reports (no instanceId) only drive the license-wide count
162
+ * while no instance has registered — otherwise they would stomp
163
+ * the deduplicated multi-instance count.
164
+ */
165
+ if (instanceId || instances.length === 0) {
166
+ await EnterpriseLicenseService.updateOneById({
167
+ id: license.id,
168
+ data: {
169
+ currentUserCount: currentUserCount,
170
+ userCountUpdatedAt: reportedAt,
171
+ },
172
+ props: {
173
+ isRoot: true,
174
+ ignoreHooks: true,
175
+ },
176
+ });
177
+ }
122
178
  return Response.sendJsonObjectResponse(req, res, {
123
- currentUserCount: userCount,
179
+ currentUserCount: currentUserCount,
124
180
  userCountUpdatedAt: reportedAt.toISOString(),
125
181
  userLimit: typeof license.userLimit === "number" ? license.userLimit : null,
182
+ instances: this.getInstanceSummaries(instances),
126
183
  });
127
184
  }
128
185
  catch (err) {
@@ -130,5 +187,138 @@ export default class EnterpriseLicenseAPI extends BaseAPI {
130
187
  }
131
188
  });
132
189
  }
190
+ parseShortText(value) {
191
+ if (typeof value !== "string") {
192
+ return "";
193
+ }
194
+ return value.trim().substring(0, 100);
195
+ }
196
+ async findLicenseInstances(licenseId) {
197
+ return EnterpriseLicenseInstanceService.findBy({
198
+ query: {
199
+ enterpriseLicenseId: licenseId,
200
+ },
201
+ select: {
202
+ _id: true,
203
+ instanceId: true,
204
+ host: true,
205
+ userCount: true,
206
+ userEmailHashes: true,
207
+ lastReportedAt: true,
208
+ },
209
+ sort: {
210
+ createdAt: SortOrder.Ascending,
211
+ },
212
+ skip: 0,
213
+ limit: LIMIT_MAX,
214
+ props: {
215
+ isRoot: true,
216
+ },
217
+ });
218
+ }
219
+ getInstanceSummaries(instances) {
220
+ return instances.map((instance) => {
221
+ return {
222
+ instanceId: instance.instanceId || "",
223
+ host: instance.host || null,
224
+ userCount: typeof instance.userCount === "number" ? instance.userCount : null,
225
+ lastReportedAt: instance.lastReportedAt
226
+ ? instance.lastReportedAt.toISOString()
227
+ : null,
228
+ };
229
+ });
230
+ }
231
+ async upsertLicenseInstance(data) {
232
+ const updated = await this.updateLicenseInstanceIfExists(data);
233
+ if (updated) {
234
+ return;
235
+ }
236
+ const instanceCount = await EnterpriseLicenseInstanceService.countBy({
237
+ query: {
238
+ enterpriseLicenseId: data.licenseId,
239
+ },
240
+ props: {
241
+ isRoot: true,
242
+ },
243
+ });
244
+ if (instanceCount.toNumber() >= MAX_INSTANCES_PER_LICENSE) {
245
+ throw new BadDataException("Too many instances are registered for this license. Please contact support@oneuptime.com.");
246
+ }
247
+ const newInstance = new EnterpriseLicenseInstance();
248
+ newInstance.enterpriseLicenseId = data.licenseId;
249
+ newInstance.instanceId = data.instanceId;
250
+ if (data.host !== undefined) {
251
+ newInstance.host = data.host;
252
+ }
253
+ if (data.userCount !== undefined) {
254
+ newInstance.userCount = data.userCount;
255
+ }
256
+ if (data.userEmailHashes !== undefined) {
257
+ newInstance.userEmailHashes = data.userEmailHashes;
258
+ }
259
+ if (data.lastReportedAt !== undefined) {
260
+ newInstance.lastReportedAt = data.lastReportedAt;
261
+ }
262
+ try {
263
+ await EnterpriseLicenseInstanceService.create({
264
+ data: newInstance,
265
+ props: {
266
+ isRoot: true,
267
+ },
268
+ });
269
+ }
270
+ catch (err) {
271
+ /*
272
+ * A concurrent request created the row between our check and this
273
+ * insert — the unique index on (enterpriseLicenseId, instanceId)
274
+ * rejected the duplicate. Apply the report as an update instead.
275
+ */
276
+ const retried = await this.updateLicenseInstanceIfExists(data);
277
+ if (!retried) {
278
+ throw err;
279
+ }
280
+ }
281
+ }
282
+ async updateLicenseInstanceIfExists(data) {
283
+ const existingInstance = await EnterpriseLicenseInstanceService.findOneBy({
284
+ query: {
285
+ enterpriseLicenseId: data.licenseId,
286
+ instanceId: data.instanceId,
287
+ },
288
+ select: {
289
+ _id: true,
290
+ },
291
+ props: {
292
+ isRoot: true,
293
+ },
294
+ });
295
+ if (!existingInstance) {
296
+ return false;
297
+ }
298
+ const updateData = {};
299
+ if (data.host !== undefined) {
300
+ updateData.host = data.host;
301
+ }
302
+ if (data.userCount !== undefined) {
303
+ updateData.userCount = data.userCount;
304
+ }
305
+ if (data.userEmailHashes !== undefined) {
306
+ updateData.userEmailHashes = data.userEmailHashes;
307
+ }
308
+ if (data.lastReportedAt !== undefined) {
309
+ updateData.lastReportedAt = data.lastReportedAt;
310
+ }
311
+ if (Object.keys(updateData).length > 0) {
312
+ await EnterpriseLicenseInstanceService.updateOneById({
313
+ id: existingInstance.id,
314
+ data: updateData,
315
+ props: {
316
+ isRoot: true,
317
+ ignoreHooks: true,
318
+ },
319
+ });
320
+ }
321
+ return true;
322
+ }
133
323
  }
134
324
  //# sourceMappingURL=EnterpriseLicenseAPI.js.map