@oneuptime/common 11.3.20 → 11.3.22
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.
- package/Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.ts +2 -0
- package/Models/AnalyticsModels/ExceptionInstance.ts +1 -0
- package/Models/AnalyticsModels/Log.ts +1 -0
- package/Models/AnalyticsModels/Metric.ts +1 -0
- package/Models/AnalyticsModels/MonitorLog.ts +1 -0
- package/Models/AnalyticsModels/Span.ts +1 -0
- package/Models/DatabaseModels/Alert.ts +100 -0
- package/Models/DatabaseModels/AlertInternalNote.ts +2 -0
- package/Models/DatabaseModels/AlertReminderRule.ts +597 -0
- package/Models/DatabaseModels/AlertSeverity.ts +2 -0
- package/Models/DatabaseModels/AlertState.ts +2 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +2 -0
- package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +173 -0
- package/Models/DatabaseModels/GlobalConfig.ts +19 -0
- package/Models/DatabaseModels/Incident.ts +100 -0
- package/Models/DatabaseModels/IncidentInternalNote.ts +2 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +2 -0
- package/Models/DatabaseModels/IncidentReminderRule.ts +597 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +2 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +2 -0
- package/Models/DatabaseModels/Index.ts +8 -0
- package/Models/DatabaseModels/Label.ts +2 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +2 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +100 -0
- package/Models/DatabaseModels/ScheduledMaintenanceReminderRule.ts +585 -0
- package/Models/DatabaseModels/ScheduledMaintenanceState.ts +2 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +2 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +2 -0
- package/Server/API/DashboardAPI.ts +221 -0
- package/Server/API/EnterpriseLicenseAPI.ts +279 -12
- package/Server/API/GlobalConfigAPI.ts +81 -16
- package/Server/API/StatusPageAPI.ts +894 -791
- package/Server/EnvironmentConfig.ts +9 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783226868418-AddEnterpriseLicenseInstance.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783234451106-AddIncidentAlertReminderRules.ts +211 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783320000000-AddScheduledMaintenanceReminderRules.ts +113 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783330000000-AddRemindWhileScheduledToScheduledMaintenanceReminderRule.ts +20 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783340000000-AddLabelsToIncidentAndAlertReminderRules.ts +69 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Services/AlertReminderRuleService.ts +253 -0
- package/Server/Services/AlertService.ts +106 -0
- package/Server/Services/EnterpriseLicenseInstanceService.ts +10 -0
- package/Server/Services/IncidentReminderRuleService.ts +256 -0
- package/Server/Services/IncidentService.ts +143 -0
- package/Server/Services/Index.ts +8 -0
- package/Server/Services/IoTDeviceService.ts +99 -4
- package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +236 -0
- package/Server/Services/ScheduledMaintenanceService.ts +127 -0
- package/Server/Services/StatusPageService.ts +104 -45
- package/Server/Services/TelemetryExceptionService.ts +123 -0
- package/Server/Services/UserNotificationSettingService.ts +24 -0
- package/Server/Utils/AnalyticsDatabase/Statement.ts +7 -3
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +35 -0
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +6 -4
- package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +7 -6
- package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +6 -4
- package/Server/Utils/Telemetry/IoTSnapshotScan.ts +45 -7
- package/Server/Utils/WhatsAppTemplateUtil.ts +10 -0
- package/ServiceRoute.ts +4 -0
- package/Tests/Server/Services/IoTDeviceService.test.ts +280 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +49 -0
- package/Tests/Server/Utils/Monitor/Criteria/TelemetryStepMetricAlias.test.ts +390 -0
- package/Tests/Server/Utils/Telemetry/IoTSnapshotScan.test.ts +202 -0
- package/Tests/Utils/EnterpriseLicenseUsage.test.ts +165 -0
- package/Types/Email/EmailTemplateType.ts +3 -0
- package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +18 -0
- package/Types/Monitor/MonitorStep.ts +32 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +3 -0
- package/Types/Permission.ts +144 -0
- package/Types/Reminder/ReminderStopState.ts +6 -0
- package/Types/Reminder/ScheduledMaintenanceReminderStopState.ts +6 -0
- package/Types/WhatsApp/WhatsAppTemplates.ts +14 -0
- package/UI/Components/EditionLabel/EditionLabel.tsx +172 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +125 -0
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +1 -0
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js +1 -0
- package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Metric.js +1 -0
- package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MonitorLog.js +1 -0
- package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js +1 -0
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +103 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertReminderRule.js +605 -0
- package/build/dist/Models/DatabaseModels/AlertReminderRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertState.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +197 -0
- package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +18 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +103 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentReminderRule.js +605 -0
- package/build/dist/Models/DatabaseModels/IncidentReminderRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +8 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Label.js +2 -0
- package/build/dist/Models/DatabaseModels/Label.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +103 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceReminderRule.js +596 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceReminderRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js +2 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +2 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +166 -16
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/EnterpriseLicenseAPI.js +203 -13
- package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
- package/build/dist/Server/API/GlobalConfigAPI.js +62 -15
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +74 -31
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +6 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783226868418-AddEnterpriseLicenseInstance.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783226868418-AddEnterpriseLicenseInstance.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783234451106-AddIncidentAlertReminderRules.js +78 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783234451106-AddIncidentAlertReminderRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783320000000-AddScheduledMaintenanceReminderRules.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783320000000-AddScheduledMaintenanceReminderRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783330000000-AddRemindWhileScheduledToScheduledMaintenanceReminderRule.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783330000000-AddRemindWhileScheduledToScheduledMaintenanceReminderRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783340000000-AddLabelsToIncidentAndAlertReminderRules.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783340000000-AddLabelsToIncidentAndAlertReminderRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AlertReminderRuleService.js +228 -0
- package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -0
- package/build/dist/Server/Services/AlertService.js +87 -0
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +9 -0
- package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -0
- package/build/dist/Server/Services/IncidentReminderRuleService.js +231 -0
- package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +116 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +8 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTDeviceService.js +66 -4
- package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +214 -0
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +102 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +91 -43
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +101 -0
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +6 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +4 -2
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +29 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +4 -5
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +6 -5
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +9 -9
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js +33 -2
- package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js.map +1 -1
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +6 -0
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
- package/build/dist/ServiceRoute.js +1 -0
- package/build/dist/ServiceRoute.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +3 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.js +2 -0
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStep.js +25 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/Permission.js +126 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Reminder/ReminderStopState.js +7 -0
- package/build/dist/Types/Reminder/ReminderStopState.js.map +1 -0
- package/build/dist/Types/Reminder/ScheduledMaintenanceReminderStopState.js +7 -0
- package/build/dist/Types/Reminder/ScheduledMaintenanceReminderStopState.js.map +1 -0
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +9 -0
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +92 -0
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +83 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
ExpressRequest,
|
|
6
6
|
ExpressResponse,
|
|
7
7
|
NextFunction,
|
|
8
|
+
OneUptimeRequest,
|
|
8
9
|
} from "../Utils/Express";
|
|
9
10
|
import Response from "../Utils/Response";
|
|
10
11
|
import BaseAPI from "./BaseAPI";
|
|
@@ -16,7 +17,8 @@ import API from "../../Utils/API";
|
|
|
16
17
|
import HTTPErrorResponse from "../../Types/API/HTTPErrorResponse";
|
|
17
18
|
import HTTPResponse from "../../Types/API/HTTPResponse";
|
|
18
19
|
import PartialEntity from "../../Types/Database/PartialEntity";
|
|
19
|
-
import { EnterpriseLicenseValidationUrl } from "../EnvironmentConfig";
|
|
20
|
+
import { EnterpriseLicenseValidationUrl, Host } from "../EnvironmentConfig";
|
|
21
|
+
import EnterpriseLicenseInstanceSummary from "../../Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary";
|
|
20
22
|
import UserMiddleware from "../Middleware/UserAuthorization";
|
|
21
23
|
|
|
22
24
|
export default class GlobalConfigAPI extends BaseAPI<
|
|
@@ -54,6 +56,7 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
54
56
|
|
|
55
57
|
this.router.get(
|
|
56
58
|
`${new this.entityType().getCrudApiPath()?.toString()}/license`,
|
|
59
|
+
UserMiddleware.getUserMiddleware,
|
|
57
60
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
58
61
|
try {
|
|
59
62
|
const config: GlobalConfig | null =
|
|
@@ -67,19 +70,42 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
67
70
|
enterpriseLicenseUserLimit: true,
|
|
68
71
|
enterpriseLicenseCurrentUserCount: true,
|
|
69
72
|
enterpriseLicenseUserCountUpdatedAt: true,
|
|
73
|
+
enterpriseLicenseInstances: true,
|
|
74
|
+
instanceId: true,
|
|
70
75
|
},
|
|
71
76
|
props: {
|
|
72
77
|
isRoot: true,
|
|
73
78
|
},
|
|
74
79
|
});
|
|
75
80
|
|
|
81
|
+
/*
|
|
82
|
+
* This route also serves the login page (before sign-in), so it
|
|
83
|
+
* cannot require authentication outright. Anonymous callers only
|
|
84
|
+
* get enough to render the edition pill — the license key, token
|
|
85
|
+
* and instance topology require a signed-in user.
|
|
86
|
+
*/
|
|
87
|
+
const isAuthenticatedUser: boolean = Boolean(
|
|
88
|
+
(req as OneUptimeRequest).userAuthorization?.userId,
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
const licenseValid: boolean = Boolean(
|
|
92
|
+
config?.enterpriseLicenseToken &&
|
|
93
|
+
config?.enterpriseLicenseExpiresAt &&
|
|
94
|
+
config.enterpriseLicenseExpiresAt.getTime() > Date.now(),
|
|
95
|
+
);
|
|
96
|
+
|
|
76
97
|
const responseBody: JSONObject = {
|
|
77
98
|
companyName: config?.enterpriseCompanyName || null,
|
|
78
99
|
expiresAt: config?.enterpriseLicenseExpiresAt
|
|
79
100
|
? config.enterpriseLicenseExpiresAt.toISOString()
|
|
80
101
|
: null,
|
|
81
|
-
licenseKey:
|
|
82
|
-
|
|
102
|
+
licenseKey: isAuthenticatedUser
|
|
103
|
+
? config?.enterpriseLicenseKey || null
|
|
104
|
+
: null,
|
|
105
|
+
token: isAuthenticatedUser
|
|
106
|
+
? config?.enterpriseLicenseToken || null
|
|
107
|
+
: null,
|
|
108
|
+
licenseValid: licenseValid,
|
|
83
109
|
userLimit:
|
|
84
110
|
typeof config?.enterpriseLicenseUserLimit === "number"
|
|
85
111
|
? config.enterpriseLicenseUserLimit
|
|
@@ -91,6 +117,15 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
91
117
|
userCountUpdatedAt: config?.enterpriseLicenseUserCountUpdatedAt
|
|
92
118
|
? config.enterpriseLicenseUserCountUpdatedAt.toISOString()
|
|
93
119
|
: null,
|
|
120
|
+
instances:
|
|
121
|
+
isAuthenticatedUser &&
|
|
122
|
+
Array.isArray(config?.enterpriseLicenseInstances)
|
|
123
|
+
? config.enterpriseLicenseInstances
|
|
124
|
+
: [],
|
|
125
|
+
instanceId:
|
|
126
|
+
isAuthenticatedUser && config?.instanceId
|
|
127
|
+
? config.instanceId.toString()
|
|
128
|
+
: null,
|
|
94
129
|
};
|
|
95
130
|
|
|
96
131
|
return Response.sendJsonObjectResponse(req, res, responseBody);
|
|
@@ -112,12 +147,38 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
112
147
|
throw new BadDataException("License key is required");
|
|
113
148
|
}
|
|
114
149
|
|
|
150
|
+
const globalConfigId: ObjectID = ObjectID.getZeroObjectID();
|
|
151
|
+
|
|
152
|
+
const existingConfig: GlobalConfig | null =
|
|
153
|
+
await GlobalConfigService.findOneById({
|
|
154
|
+
id: globalConfigId,
|
|
155
|
+
select: {
|
|
156
|
+
_id: true,
|
|
157
|
+
instanceId: true,
|
|
158
|
+
},
|
|
159
|
+
props: {
|
|
160
|
+
isRoot: true,
|
|
161
|
+
ignoreHooks: true,
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
/*
|
|
166
|
+
* Send this instance's id and host along with the key so the
|
|
167
|
+
* license server registers this instance against the license and
|
|
168
|
+
* it shows up in the instance list on all instances that share
|
|
169
|
+
* the license.
|
|
170
|
+
*/
|
|
171
|
+
const instanceId: ObjectID =
|
|
172
|
+
existingConfig?.instanceId || ObjectID.generate();
|
|
173
|
+
|
|
115
174
|
const validationResponse:
|
|
116
175
|
| HTTPResponse<JSONObject>
|
|
117
176
|
| HTTPErrorResponse = await API.post<JSONObject>({
|
|
118
177
|
url: EnterpriseLicenseValidationUrl,
|
|
119
178
|
data: {
|
|
120
179
|
licenseKey,
|
|
180
|
+
instanceId: instanceId.toString(),
|
|
181
|
+
host: Host,
|
|
121
182
|
},
|
|
122
183
|
});
|
|
123
184
|
|
|
@@ -178,6 +239,13 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
178
239
|
}
|
|
179
240
|
}
|
|
180
241
|
|
|
242
|
+
const instances: Array<EnterpriseLicenseInstanceSummary> =
|
|
243
|
+
Array.isArray(payload["instances"])
|
|
244
|
+
? (payload[
|
|
245
|
+
"instances"
|
|
246
|
+
] as Array<EnterpriseLicenseInstanceSummary>)
|
|
247
|
+
: [];
|
|
248
|
+
|
|
181
249
|
const updatePayload: PartialEntity<GlobalConfig> = {
|
|
182
250
|
enterpriseCompanyName: companyNameRaw || null,
|
|
183
251
|
enterpriseLicenseKey: licenseKeyRaw || null,
|
|
@@ -186,21 +254,13 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
186
254
|
enterpriseLicenseUserLimit: userLimit,
|
|
187
255
|
enterpriseLicenseCurrentUserCount: currentUserCount,
|
|
188
256
|
enterpriseLicenseUserCountUpdatedAt: userCountUpdatedAt,
|
|
257
|
+
enterpriseLicenseInstances: instances,
|
|
189
258
|
};
|
|
190
259
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
id: globalConfigId,
|
|
196
|
-
select: {
|
|
197
|
-
_id: true,
|
|
198
|
-
},
|
|
199
|
-
props: {
|
|
200
|
-
isRoot: true,
|
|
201
|
-
ignoreHooks: true,
|
|
202
|
-
},
|
|
203
|
-
});
|
|
260
|
+
if (!existingConfig?.instanceId) {
|
|
261
|
+
// Installs that predate instance ids: persist the one we generated.
|
|
262
|
+
updatePayload.instanceId = instanceId;
|
|
263
|
+
}
|
|
204
264
|
|
|
205
265
|
if (existingConfig) {
|
|
206
266
|
await GlobalConfigService.updateOneById({
|
|
@@ -244,6 +304,9 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
244
304
|
userCountUpdatedAt;
|
|
245
305
|
}
|
|
246
306
|
|
|
307
|
+
newConfig.enterpriseLicenseInstances = instances;
|
|
308
|
+
newConfig.instanceId = instanceId;
|
|
309
|
+
|
|
247
310
|
await GlobalConfigService.create({
|
|
248
311
|
data: newConfig,
|
|
249
312
|
props: {
|
|
@@ -263,6 +326,8 @@ export default class GlobalConfigAPI extends BaseAPI<
|
|
|
263
326
|
userCountUpdatedAt: userCountUpdatedAt
|
|
264
327
|
? userCountUpdatedAt.toISOString()
|
|
265
328
|
: null,
|
|
329
|
+
instances: instances,
|
|
330
|
+
instanceId: instanceId.toString(),
|
|
266
331
|
});
|
|
267
332
|
} catch (err) {
|
|
268
333
|
next(err);
|