@oneuptime/common 12.0.27 → 12.0.29
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/RumSessionChunk.ts +52 -0
- package/Models/DatabaseModels/CloudResource.ts +17 -1
- package/Models/DatabaseModels/DashboardDomain.ts +43 -0
- package/Models/DatabaseModels/MonitorTemplate.ts +15 -3
- package/Models/DatabaseModels/RumApplication.ts +35 -2
- package/Models/DatabaseModels/StatusPageDomain.ts +43 -0
- package/Server/API/DashboardDomainAPI.ts +74 -0
- package/Server/API/MicrosoftTeamsAPI.ts +81 -180
- package/Server/API/StatusPageDomainAPI.ts +74 -0
- package/Server/API/TelemetryAPI.ts +104 -15
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.ts +43 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
- package/Server/Middleware/ProjectAuthorization.ts +6 -1
- package/Server/Services/DashboardDomainService.ts +131 -0
- package/Server/Services/LogPipelineProcessorService.ts +88 -0
- package/Server/Services/MonitorTemplateService.ts +70 -11
- package/Server/Services/StatusPageDomainService.ts +163 -3
- package/Server/Services/StatusPagePrivateUserSessionService.ts +197 -56
- package/Server/Types/Domain.ts +17 -0
- package/Server/Utils/APIKey/AccessPermission.ts +24 -0
- package/Server/Utils/Greenlock/Greenlock.ts +156 -58
- package/Server/Utils/LogPipelineProcessorValidation.ts +112 -0
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +1094 -45
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +153 -17
- package/Server/Utils/SessionReplay/SessionReplayGateCache.ts +12 -5
- package/Server/Utils/SessionReplay/SessionReplayIdentity.ts +102 -0
- package/Server/Utils/SessionReplay/SessionReplayReadService.ts +11 -2
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +23 -11
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +0 -170
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.ts +158 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +23 -11
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +35 -13
- package/Tests/App/Dashboard/MonitorTemplateColumnAndFacet.test.tsx +505 -0
- package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +106 -0
- package/Tests/App/StatusPage/StatusPageLoginCodeUtil.test.ts +84 -0
- package/Tests/App/StatusPage/StatusPageRedirectSafety.test.ts +119 -0
- package/Tests/Models/DatabaseModels/SessionReplayModels.test.ts +81 -0
- package/Tests/Models/MonitorTemplateMonitorNameColumn.test.ts +258 -0
- package/Tests/Server/API/CustomDomainReissueSslAPI.test.ts +469 -0
- package/Tests/Server/API/MicrosoftTeamsBotMessagesEndpoint.test.ts +729 -0
- package/Tests/Server/API/MicrosoftTeamsBotTestEndpoint.test.ts +26 -0
- package/Tests/Server/API/MicrosoftTeamsLegacyWebhookRemoval.test.ts +402 -0
- package/Tests/Server/API/SessionReplayAPI.test.ts +232 -0
- package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +4 -0
- package/Tests/Server/Services/AddCertificateReissueRequestedAtToDomainsMigration.test.ts +287 -0
- package/Tests/Server/Services/CustomDomainCertificateReissue.test.ts +477 -0
- package/Tests/Server/Services/LogPipelineProcessorSaveValidation.test.ts +249 -0
- package/Tests/Server/Services/MonitorTemplateServiceBulkSync.test.ts +549 -0
- package/Tests/Server/Services/MonitorTemplateServiceNetworkDeviceSync.test.ts +16 -3
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +57 -0
- package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +151 -15
- package/Tests/Server/Services/StatusPagePrivateUserSessionService.test.ts +587 -0
- package/Tests/Server/Types/Database/Permissions/ApiKeyFileAccess.test.ts +286 -0
- package/Tests/Server/Types/Database/Permissions/MonitorTemplateColumnAccess.test.ts +328 -0
- package/Tests/Server/Types/Database/QueryHelperFindWithSameTextAndIsNull.test.ts +83 -0
- package/Tests/Server/Utils/AI/SRE/ConfidenceSignal.test.ts +377 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +16 -1
- package/Tests/Server/Utils/Greenlock/CertificateRenewalSchedule.test.ts +250 -0
- package/Tests/Server/Utils/LogPipelineProcessorValidation.test.ts +198 -0
- package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +48 -9
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsAuth.test.ts +726 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +74 -11
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsErrorHandling.test.ts +1107 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +20 -3
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +51 -11
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +1246 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsRequestContract.test.ts +961 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsResponseParsing.test.ts +653 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsActionAuthorization.test.ts +880 -0
- package/Tests/Types/API/HTTPResponse.test.ts +175 -0
- package/Tests/Types/API/Route.test.ts +36 -4
- package/Tests/Types/Database/DatabaseProperty.test.ts +171 -0
- package/Tests/Types/DateLocalShortDateTimeString.test.ts +518 -0
- package/Tests/Types/DateLocalTimeString.test.ts +259 -0
- package/Tests/Types/DateUserPrefers12HourFormat.test.ts +316 -0
- package/Tests/UI/Components/LogsHistogram.test.tsx +41 -2
- package/Tests/UI/Components/LogsViewerEmptyStateTimeRange.test.tsx +212 -0
- package/Tests/UI/Components/TelemetryChartClockFormat.test.tsx +359 -0
- package/Tests/UI/Components/TimeRangePickerClockFormat.test.tsx +422 -0
- package/Tests/UI/Components/TimeRangePickerDropdown.test.tsx +146 -8
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsMessagingEndpointGuidance.test.tsx +520 -0
- package/Tests/UI/Utils/Navigation.test.ts +82 -0
- package/Tests/Utils/Array.test.ts +100 -0
- package/Tests/Utils/CertificateReissue.test.ts +225 -0
- package/Tests/Utils/Grok/Grok.test.ts +492 -0
- package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +181 -13
- package/Types/API/Route.ts +20 -5
- package/Types/Date.ts +143 -13
- package/Types/Rum/SessionReplay.ts +76 -1
- package/UI/Components/Date/TimeRangePickerDropdown.tsx +9 -5
- package/UI/Components/LogsViewer/LogsViewer.tsx +12 -7
- package/UI/Components/LogsViewer/components/HistogramTooltip.tsx +18 -17
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +21 -28
- package/UI/Components/LogsViewer/components/LogsHistogram.tsx +2 -4
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +2 -4
- package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +17 -16
- package/UI/Utils/Navigation.ts +42 -0
- package/Utils/Array.ts +37 -0
- package/Utils/CertificateReissue.ts +128 -0
- package/Utils/Grok/Grok.ts +461 -0
- package/Utils/Grok/GrokPatterns.ts +118 -0
- package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +58 -6
- package/build/dist/Models/AnalyticsModels/RumSessionChunk.js +48 -0
- package/build/dist/Models/AnalyticsModels/RumSessionChunk.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResource.js +19 -2
- package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardDomain.js +44 -0
- package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js +17 -4
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplication.js +37 -3
- package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +44 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Server/API/DashboardDomainAPI.js +43 -1
- package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +74 -118
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageDomainAPI.js +43 -1
- package/build/dist/Server/API/StatusPageDomainAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +67 -14
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.js +28 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js +6 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
- package/build/dist/Server/Services/DashboardDomainService.js +104 -0
- package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
- package/build/dist/Server/Services/LogPipelineProcessorService.js +65 -0
- package/build/dist/Server/Services/LogPipelineProcessorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +57 -11
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageDomainService.js +132 -3
- package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js +112 -32
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js.map +1 -1
- package/build/dist/Server/Types/Domain.js +16 -0
- package/build/dist/Server/Types/Domain.js.map +1 -1
- package/build/dist/Server/Utils/APIKey/AccessPermission.js +24 -0
- package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
- package/build/dist/Server/Utils/Greenlock/Greenlock.js +110 -35
- package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
- package/build/dist/Server/Utils/LogPipelineProcessorValidation.js +77 -0
- package/build/dist/Server/Utils/LogPipelineProcessorValidation.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +777 -36
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +108 -17
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js.map +1 -1
- package/build/dist/Server/Utils/SessionReplay/SessionReplayIdentity.js +59 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayIdentity.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +9 -2
- package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +17 -6
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +0 -159
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.js +128 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +17 -6
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +25 -13
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/API/Route.js +16 -5
- package/build/dist/Types/API/Route.js.map +1 -1
- package/build/dist/Types/Date.js +115 -13
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplay.js +38 -0
- package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
- package/build/dist/UI/Components/Date/TimeRangePickerDropdown.js +9 -5
- package/build/dist/UI/Components/Date/TimeRangePickerDropdown.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +12 -7
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js +15 -14
- package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +17 -22
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +2 -4
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +2 -4
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +15 -14
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +30 -0
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/Utils/Array.js +25 -0
- package/build/dist/Utils/Array.js.map +1 -1
- package/build/dist/Utils/CertificateReissue.js +97 -0
- package/build/dist/Utils/CertificateReissue.js.map +1 -0
- package/build/dist/Utils/Grok/Grok.js +324 -0
- package/build/dist/Utils/Grok/Grok.js.map +1 -0
- package/build/dist/Utils/Grok/GrokPatterns.js +112 -0
- package/build/dist/Utils/Grok/GrokPatterns.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +63 -3
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -1
- package/package.json +1 -1
- package/UI/Utils/JsonWebToken.ts +0 -14
- package/build/dist/UI/Utils/JsonWebToken.js +0 -10
- package/build/dist/UI/Utils/JsonWebToken.js.map +0 -1
|
@@ -20,6 +20,11 @@ import Telemetry from "../Utils/Telemetry";
|
|
|
20
20
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
21
21
|
import { StatusPageCNameRecord } from "../EnvironmentConfig";
|
|
22
22
|
import Domain from "../Types/Domain";
|
|
23
|
+
import ArrayUtil from "../../Utils/Array";
|
|
24
|
+
import OneUptimeDate from "../../Types/Date";
|
|
25
|
+
import CertificateReissueUtil from "../../Utils/CertificateReissue";
|
|
26
|
+
import TooManyRequestsException from "../../Types/Exception/TooManyRequestsException";
|
|
27
|
+
import QueryHelper from "../Types/Database/QueryHelper";
|
|
23
28
|
const STATUS_PAGE_DOMAIN_EGRESS_LABEL = "Status page domain";
|
|
24
29
|
export class Service extends DatabaseService {
|
|
25
30
|
constructor() {
|
|
@@ -175,6 +180,100 @@ export class Service extends DatabaseService {
|
|
|
175
180
|
},
|
|
176
181
|
});
|
|
177
182
|
}
|
|
183
|
+
/*
|
|
184
|
+
* Reissue this domain's Let's Encrypt certificate because a customer asked
|
|
185
|
+
* for it, rather than because it is close to expiring.
|
|
186
|
+
*
|
|
187
|
+
* Every order spends from a Let's Encrypt account that is shared by the
|
|
188
|
+
* whole installation - including by the cron that keeps everybody else's
|
|
189
|
+
* certificates alive - so this is throttled to one request per domain per
|
|
190
|
+
* CertificateReissueUtil.COOLDOWN_IN_HOURS.
|
|
191
|
+
*
|
|
192
|
+
* Throws with a customer-readable reason for every refusal, so the API layer
|
|
193
|
+
* can hand the message straight back without classifying the failure:
|
|
194
|
+
* BadDataException for a domain that is not eligible at all, and
|
|
195
|
+
* TooManyRequestsException (429) for one that is simply too soon.
|
|
196
|
+
*/
|
|
197
|
+
async reissueCert(domainId) {
|
|
198
|
+
const now = OneUptimeDate.getCurrentDate();
|
|
199
|
+
const statusPageDomain = await this.findOneBy({
|
|
200
|
+
query: {
|
|
201
|
+
_id: domainId.toString(),
|
|
202
|
+
},
|
|
203
|
+
select: {
|
|
204
|
+
_id: true,
|
|
205
|
+
fullDomain: true,
|
|
206
|
+
isCnameVerified: true,
|
|
207
|
+
isSslOrdered: true,
|
|
208
|
+
isCustomCertificate: true,
|
|
209
|
+
certificateReissueRequestedAt: true,
|
|
210
|
+
},
|
|
211
|
+
props: {
|
|
212
|
+
isRoot: true,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
if (!statusPageDomain) {
|
|
216
|
+
throw new BadDataException("Domain not found.");
|
|
217
|
+
}
|
|
218
|
+
if (!statusPageDomain.fullDomain) {
|
|
219
|
+
throw new BadDataException("Unable to reissue certificate because domain is null");
|
|
220
|
+
}
|
|
221
|
+
/*
|
|
222
|
+
* Nothing to reissue: the certificate on a custom-certificate domain is
|
|
223
|
+
* the one the customer uploaded, and we have no way to obtain another.
|
|
224
|
+
*/
|
|
225
|
+
if (statusPageDomain.isCustomCertificate) {
|
|
226
|
+
throw new BadDataException("This domain uses a certificate you uploaded yourself, so there is no Let's Encrypt certificate to reissue. Please edit this domain and upload a new certificate instead.");
|
|
227
|
+
}
|
|
228
|
+
if (!statusPageDomain.isCnameVerified) {
|
|
229
|
+
throw new BadDataException("CNAME is not verified. Please verify CNAME first before you reissue the SSL certificate.");
|
|
230
|
+
}
|
|
231
|
+
/*
|
|
232
|
+
* A domain that never ordered a certificate has nothing to reissue - the
|
|
233
|
+
* dashboard shows "Order Free SSL" for it, which is the correct button.
|
|
234
|
+
*/
|
|
235
|
+
if (!statusPageDomain.isSslOrdered) {
|
|
236
|
+
throw new BadDataException("No SSL certificate has been ordered for this domain yet. Please order one first.");
|
|
237
|
+
}
|
|
238
|
+
/*
|
|
239
|
+
* Claim the cooldown before ordering anything, and claim it by putting the
|
|
240
|
+
* cooldown condition in the WHERE clause rather than in an `if` above the
|
|
241
|
+
* write. Two clicks that arrive together both read a row that is not
|
|
242
|
+
* cooling down; only the write can decide which one of them gets to spend
|
|
243
|
+
* the CA's allowance.
|
|
244
|
+
*
|
|
245
|
+
* The stamp goes down BEFORE the order and is never rolled back on
|
|
246
|
+
* failure. A rejected order still costs a validation attempt against the
|
|
247
|
+
* shared account, and a domain whose order fails is exactly the domain
|
|
248
|
+
* somebody presses again - so a failed attempt has to start the clock the
|
|
249
|
+
* same way a successful one does.
|
|
250
|
+
*/
|
|
251
|
+
const claimedRowCount = await this.updateOneBy({
|
|
252
|
+
query: {
|
|
253
|
+
_id: domainId.toString(),
|
|
254
|
+
certificateReissueRequestedAt: QueryHelper.lessThanEqualToOrNull(CertificateReissueUtil.getCooldownCutoff(now)),
|
|
255
|
+
},
|
|
256
|
+
data: {
|
|
257
|
+
certificateReissueRequestedAt: now,
|
|
258
|
+
},
|
|
259
|
+
props: {
|
|
260
|
+
isRoot: true,
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
if (claimedRowCount === 0) {
|
|
264
|
+
if (statusPageDomain.certificateReissueRequestedAt) {
|
|
265
|
+
throw new TooManyRequestsException(CertificateReissueUtil.getCooldownMessage(statusPageDomain.certificateReissueRequestedAt, now));
|
|
266
|
+
}
|
|
267
|
+
/*
|
|
268
|
+
* The row matched the cooldown a moment ago and does not now: another
|
|
269
|
+
* request claimed it in between, or the domain was deleted. Either way
|
|
270
|
+
* the caller must not order.
|
|
271
|
+
*/
|
|
272
|
+
throw new BadDataException("Could not start a certificate reissue for this domain. Please refresh the page and try again.");
|
|
273
|
+
}
|
|
274
|
+
logger.debug("Reissuing SSL certificate for domain: " + statusPageDomain.fullDomain, { fullDomain: statusPageDomain.fullDomain });
|
|
275
|
+
await this.orderCert(statusPageDomain);
|
|
276
|
+
}
|
|
178
277
|
async updateSslProvisioningStatusForAllDomains() {
|
|
179
278
|
const domains = await this.findBy({
|
|
180
279
|
query: {
|
|
@@ -183,6 +282,7 @@ export class Service extends DatabaseService {
|
|
|
183
282
|
},
|
|
184
283
|
select: {
|
|
185
284
|
_id: true,
|
|
285
|
+
fullDomain: true,
|
|
186
286
|
},
|
|
187
287
|
limit: LIMIT_MAX,
|
|
188
288
|
skip: 0,
|
|
@@ -190,9 +290,24 @@ export class Service extends DatabaseService {
|
|
|
190
290
|
isRoot: true,
|
|
191
291
|
},
|
|
192
292
|
});
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
293
|
+
/*
|
|
294
|
+
* Each domain costs a request out to the customer's status page, so walking
|
|
295
|
+
* the fleet one at a time makes the sweep as long as the fleet is slow.
|
|
296
|
+
* That length is the delay before an expired certificate is noticed and
|
|
297
|
+
* reordered, so it is the outage a customer sees when renewal has not
|
|
298
|
+
* already happened - it must stay well inside the sweep's own interval.
|
|
299
|
+
*/
|
|
300
|
+
await ArrayUtil.forEachWithConcurrency(domains, Service.SSL_PROVISIONING_CHECK_CONCURRENCY, async (domain) => {
|
|
301
|
+
try {
|
|
302
|
+
await this.updateSslProvisioningStatus(domain);
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
// one unreachable domain must not end the sweep for the rest.
|
|
306
|
+
logger.error(err, {
|
|
307
|
+
fullDomain: domain.fullDomain,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
});
|
|
196
311
|
}
|
|
197
312
|
async isSSLProvisioned(fulldomain, token) {
|
|
198
313
|
try {
|
|
@@ -580,6 +695,14 @@ export class Service extends DatabaseService {
|
|
|
580
695
|
}
|
|
581
696
|
}
|
|
582
697
|
}
|
|
698
|
+
/*
|
|
699
|
+
* How many status pages the provisioning sweep checks at once. Each check is
|
|
700
|
+
* one bounded request out to a customer domain, so this is about not letting
|
|
701
|
+
* the sweep's length grow with the size of the fleet, rather than about local
|
|
702
|
+
* work. Kept modest so a sweep cannot look like a burst of traffic to any
|
|
703
|
+
* shared infrastructure sitting in front of those domains.
|
|
704
|
+
*/
|
|
705
|
+
Service.SSL_PROVISIONING_CHECK_CONCURRENCY = 10;
|
|
583
706
|
__decorate([
|
|
584
707
|
CaptureSpan(),
|
|
585
708
|
__metadata("design:type", Function),
|
|
@@ -616,6 +739,12 @@ __decorate([
|
|
|
616
739
|
__metadata("design:paramtypes", [StatusPageDomain]),
|
|
617
740
|
__metadata("design:returntype", Promise)
|
|
618
741
|
], Service.prototype, "orderCert", null);
|
|
742
|
+
__decorate([
|
|
743
|
+
CaptureSpan(),
|
|
744
|
+
__metadata("design:type", Function),
|
|
745
|
+
__metadata("design:paramtypes", [ObjectID]),
|
|
746
|
+
__metadata("design:returntype", Promise)
|
|
747
|
+
], Service.prototype, "reissueCert", null);
|
|
619
748
|
__decorate([
|
|
620
749
|
CaptureSpan(),
|
|
621
750
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusPageDomainService.js","sourceRoot":"","sources":["../../../../Server/Services/StatusPageDomainService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StatusPageDomainService.js","sourceRoot":"","sources":["../../../../Server/Services/StatusPageDomainService.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ import OneUptimeDate from "../../Types/Date";
|
|
|
7
7
|
import Text from "../../Types/Text";
|
|
8
8
|
import logger from "../Utils/Logger";
|
|
9
9
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
10
|
+
import { JsonContains, MoreThan } from "typeorm";
|
|
11
|
+
export const STATUS_PAGE_LOGIN_CODE_TTL_MINUTES = 5;
|
|
10
12
|
export class Service extends DatabaseService {
|
|
11
13
|
constructor() {
|
|
12
14
|
super(Model);
|
|
@@ -35,6 +37,14 @@ export class Service extends DatabaseService {
|
|
|
35
37
|
throw error;
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
async createLoginCodeSession(options) {
|
|
41
|
+
return await this.createSession(Object.assign(Object.assign({}, options), { additionalInfo: Object.assign(Object.assign({}, (options.additionalInfo || {})), { [Service.LOGIN_CODE_PURPOSE_KEY]: Service.LOGIN_CODE_PURPOSE_VALUE }), refreshTokenExpiresAt: OneUptimeDate.getSomeMinutesAfter(STATUS_PAGE_LOGIN_CODE_TTL_MINUTES) }));
|
|
42
|
+
}
|
|
43
|
+
isLoginCodeSession(session) {
|
|
44
|
+
var _a;
|
|
45
|
+
return (((_a = session.additionalInfo) === null || _a === void 0 ? void 0 : _a[Service.LOGIN_CODE_PURPOSE_KEY]) ===
|
|
46
|
+
Service.LOGIN_CODE_PURPOSE_VALUE);
|
|
47
|
+
}
|
|
38
48
|
async findActiveSessionByRefreshToken(refreshToken) {
|
|
39
49
|
const hashedValue = await HashedString.hashValue(refreshToken, EncryptionSecret);
|
|
40
50
|
const session = await this.findOneBy({
|
|
@@ -74,38 +84,11 @@ export class Service extends DatabaseService {
|
|
|
74
84
|
async renewSessionWithNewRefreshToken(options) {
|
|
75
85
|
const refreshToken = Service.generateRefreshToken();
|
|
76
86
|
const refreshTokenExpiresAt = options.refreshTokenExpiresAt || Service.getRefreshTokenExpiry();
|
|
77
|
-
const updatePayload = {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
const ipAddress = Text.truncate(options.ipAddress, Service.SHORT_TEXT_LIMIT);
|
|
84
|
-
if (ipAddress) {
|
|
85
|
-
updatePayload.ipAddress = ipAddress;
|
|
86
|
-
}
|
|
87
|
-
if (options.userAgent) {
|
|
88
|
-
updatePayload.userAgent = options.userAgent;
|
|
89
|
-
}
|
|
90
|
-
const deviceName = Text.truncate(options.deviceName, Service.SHORT_TEXT_LIMIT);
|
|
91
|
-
if (deviceName) {
|
|
92
|
-
updatePayload.deviceName = deviceName;
|
|
93
|
-
}
|
|
94
|
-
const deviceType = Text.truncate(options.deviceType, Service.SHORT_TEXT_LIMIT);
|
|
95
|
-
if (deviceType) {
|
|
96
|
-
updatePayload.deviceType = deviceType;
|
|
97
|
-
}
|
|
98
|
-
const deviceOS = Text.truncate(options.deviceOS, Service.SHORT_TEXT_LIMIT);
|
|
99
|
-
if (deviceOS) {
|
|
100
|
-
updatePayload.deviceOS = deviceOS;
|
|
101
|
-
}
|
|
102
|
-
const deviceBrowser = Text.truncate(options.deviceBrowser, Service.SHORT_TEXT_LIMIT);
|
|
103
|
-
if (deviceBrowser) {
|
|
104
|
-
updatePayload.deviceBrowser = deviceBrowser;
|
|
105
|
-
}
|
|
106
|
-
if (options.additionalInfo || options.session.additionalInfo) {
|
|
107
|
-
updatePayload.additionalInfo = Object.assign(Object.assign({}, (options.session.additionalInfo || {})), (options.additionalInfo || {}));
|
|
108
|
-
}
|
|
87
|
+
const updatePayload = this.buildRenewalUpdatePayload({
|
|
88
|
+
options,
|
|
89
|
+
refreshToken,
|
|
90
|
+
refreshTokenExpiresAt,
|
|
91
|
+
});
|
|
109
92
|
const updatedSession = await this.updateOneByIdAndFetch({
|
|
110
93
|
id: options.session.id,
|
|
111
94
|
data: updatePayload,
|
|
@@ -122,6 +105,66 @@ export class Service extends DatabaseService {
|
|
|
122
105
|
refreshTokenExpiresAt,
|
|
123
106
|
};
|
|
124
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Atomically consume the short-lived login code and replace it with the
|
|
110
|
+
* long-lived refresh credential that is delivered only as an HttpOnly
|
|
111
|
+
* cookie. The refresh-token column is unique and included in the UPDATE
|
|
112
|
+
* predicate, so concurrent redemption attempts cannot both succeed.
|
|
113
|
+
*/
|
|
114
|
+
async exchangeLoginCode(loginCode, options) {
|
|
115
|
+
if (!ObjectID.isValidUUID(loginCode)) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const session = await this.findActiveSessionByRefreshToken(loginCode);
|
|
119
|
+
if (!(session === null || session === void 0 ? void 0 : session.id) ||
|
|
120
|
+
!session.statusPageId ||
|
|
121
|
+
!this.isLoginCodeSession(session) ||
|
|
122
|
+
session.statusPageId.toString() !== options.statusPageId.toString()) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const refreshToken = Service.generateRefreshToken();
|
|
126
|
+
const refreshTokenExpiresAt = Service.getRefreshTokenExpiry();
|
|
127
|
+
const renewalOptions = {
|
|
128
|
+
session,
|
|
129
|
+
ipAddress: options.ipAddress,
|
|
130
|
+
userAgent: options.userAgent,
|
|
131
|
+
deviceName: options.deviceName,
|
|
132
|
+
deviceType: options.deviceType,
|
|
133
|
+
deviceOS: options.deviceOS,
|
|
134
|
+
deviceBrowser: options.deviceBrowser,
|
|
135
|
+
additionalInfo: options.additionalInfo,
|
|
136
|
+
};
|
|
137
|
+
const updatePayload = this.buildRenewalUpdatePayload({
|
|
138
|
+
options: renewalOptions,
|
|
139
|
+
refreshToken,
|
|
140
|
+
refreshTokenExpiresAt,
|
|
141
|
+
});
|
|
142
|
+
const refreshTokenHash = await HashedString.hashValue(refreshToken, EncryptionSecret);
|
|
143
|
+
updatePayload.refreshToken = new HashedString(refreshTokenHash, true);
|
|
144
|
+
const additionalInfo = Object.assign({}, (updatePayload.additionalInfo || {}));
|
|
145
|
+
delete additionalInfo[Service.LOGIN_CODE_PURPOSE_KEY];
|
|
146
|
+
updatePayload.additionalInfo = additionalInfo;
|
|
147
|
+
const loginCodeHash = await HashedString.hashValue(loginCode, EncryptionSecret);
|
|
148
|
+
const updateResult = await this.getRepository().update({
|
|
149
|
+
_id: session._id,
|
|
150
|
+
statusPageId: options.statusPageId,
|
|
151
|
+
refreshToken: new HashedString(loginCodeHash, true),
|
|
152
|
+
refreshTokenExpiresAt: MoreThan(OneUptimeDate.getCurrentDate()),
|
|
153
|
+
isRevoked: false,
|
|
154
|
+
additionalInfo: JsonContains({
|
|
155
|
+
[Service.LOGIN_CODE_PURPOSE_KEY]: Service.LOGIN_CODE_PURPOSE_VALUE,
|
|
156
|
+
}),
|
|
157
|
+
}, updatePayload);
|
|
158
|
+
if (updateResult.affected !== 1) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
Object.assign(session, updatePayload);
|
|
162
|
+
return {
|
|
163
|
+
session,
|
|
164
|
+
refreshToken,
|
|
165
|
+
refreshTokenExpiresAt,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
125
168
|
async touchSession(sessionId, options) {
|
|
126
169
|
const updatePayload = {
|
|
127
170
|
lastActiveAt: OneUptimeDate.getCurrentDate(),
|
|
@@ -201,6 +244,41 @@ export class Service extends DatabaseService {
|
|
|
201
244
|
session.additionalInfo = Object.assign({}, (options.additionalInfo || {}));
|
|
202
245
|
return session;
|
|
203
246
|
}
|
|
247
|
+
buildRenewalUpdatePayload(data) {
|
|
248
|
+
const updatePayload = {
|
|
249
|
+
refreshToken: HashedString.fromString(data.refreshToken),
|
|
250
|
+
refreshTokenExpiresAt: data.refreshTokenExpiresAt,
|
|
251
|
+
lastActiveAt: OneUptimeDate.getCurrentDate(),
|
|
252
|
+
isRevoked: false,
|
|
253
|
+
};
|
|
254
|
+
const ipAddress = Text.truncate(data.options.ipAddress, Service.SHORT_TEXT_LIMIT);
|
|
255
|
+
if (ipAddress) {
|
|
256
|
+
updatePayload.ipAddress = ipAddress;
|
|
257
|
+
}
|
|
258
|
+
if (data.options.userAgent) {
|
|
259
|
+
updatePayload.userAgent = data.options.userAgent;
|
|
260
|
+
}
|
|
261
|
+
const deviceName = Text.truncate(data.options.deviceName, Service.SHORT_TEXT_LIMIT);
|
|
262
|
+
if (deviceName) {
|
|
263
|
+
updatePayload.deviceName = deviceName;
|
|
264
|
+
}
|
|
265
|
+
const deviceType = Text.truncate(data.options.deviceType, Service.SHORT_TEXT_LIMIT);
|
|
266
|
+
if (deviceType) {
|
|
267
|
+
updatePayload.deviceType = deviceType;
|
|
268
|
+
}
|
|
269
|
+
const deviceOS = Text.truncate(data.options.deviceOS, Service.SHORT_TEXT_LIMIT);
|
|
270
|
+
if (deviceOS) {
|
|
271
|
+
updatePayload.deviceOS = deviceOS;
|
|
272
|
+
}
|
|
273
|
+
const deviceBrowser = Text.truncate(data.options.deviceBrowser, Service.SHORT_TEXT_LIMIT);
|
|
274
|
+
if (deviceBrowser) {
|
|
275
|
+
updatePayload.deviceBrowser = deviceBrowser;
|
|
276
|
+
}
|
|
277
|
+
if (data.options.additionalInfo || data.options.session.additionalInfo) {
|
|
278
|
+
updatePayload.additionalInfo = Object.assign(Object.assign({}, (data.options.session.additionalInfo || {})), (data.options.additionalInfo || {}));
|
|
279
|
+
}
|
|
280
|
+
return updatePayload;
|
|
281
|
+
}
|
|
204
282
|
static generateRefreshToken() {
|
|
205
283
|
return ObjectID.generate().toString();
|
|
206
284
|
}
|
|
@@ -209,6 +287,8 @@ export class Service extends DatabaseService {
|
|
|
209
287
|
}
|
|
210
288
|
}
|
|
211
289
|
Service.DEFAULT_REFRESH_TOKEN_TTL_DAYS = 30;
|
|
290
|
+
Service.LOGIN_CODE_PURPOSE_KEY = "oneuptimeStatusPageSessionPurpose";
|
|
291
|
+
Service.LOGIN_CODE_PURPOSE_VALUE = "login-code";
|
|
212
292
|
Service.SHORT_TEXT_LIMIT = 100;
|
|
213
293
|
export default new Service();
|
|
214
294
|
//# sourceMappingURL=StatusPagePrivateUserSessionService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusPagePrivateUserSessionService.js","sourceRoot":"","sources":["../../../../Server/Services/StatusPagePrivateUserSessionService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,0DAA0D,CAAC;AAC7E,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAE5C,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusPagePrivateUserSessionService.js","sourceRoot":"","sources":["../../../../Server/Services/StatusPagePrivateUserSessionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ import BadDataException from "../../Types/Exception/BadDataException";
|
|
|
15
15
|
import URL from "../../Types/API/URL";
|
|
16
16
|
import API from "../../Utils/API";
|
|
17
17
|
import DataSourceEgressGuard from "../Utils/DataSource/EgressGuard";
|
|
18
|
+
/*
|
|
19
|
+
* A status page that is up answers the verification path well inside this.
|
|
20
|
+
* It is a ceiling on how long one unreachable domain may hold up the rest of a
|
|
21
|
+
* certificate run, not a latency target.
|
|
22
|
+
*/
|
|
23
|
+
export const DOMAIN_VERIFICATION_TIMEOUT_IN_MS = 10000;
|
|
18
24
|
export default class Domain extends DomainCommon {
|
|
19
25
|
/*
|
|
20
26
|
* GET a domain-verification URL built from a tenant-supplied domain.
|
|
@@ -30,6 +36,15 @@ export default class Domain extends DomainCommon {
|
|
|
30
36
|
*
|
|
31
37
|
* Private ranges stay reachable on self-hosted installs, where a status page
|
|
32
38
|
* domain legitimately resolves inside the corporate network.
|
|
39
|
+
*
|
|
40
|
+
* The call is bounded. A customer domain that has been pointed at an address
|
|
41
|
+
* which silently drops packets - a decommissioned load balancer, a firewall
|
|
42
|
+
* that blackholes instead of refusing - never answers and never resets, so an
|
|
43
|
+
* unbounded request sits until the kernel gives up on the TCP connect, which
|
|
44
|
+
* is a little over two minutes on Linux. The certificate crons walk every
|
|
45
|
+
* status page domain in turn, so each such domain would burn that timeout out
|
|
46
|
+
* of the run's budget and push the domains behind it into the next run - the
|
|
47
|
+
* renewals that matter get starved by the domains that will never answer.
|
|
33
48
|
*/
|
|
34
49
|
static async getForDomainVerification(data) {
|
|
35
50
|
const { httpAgent, httpsAgent } = await DataSourceEgressGuard.assertUrlAllowedAndPin(data.url, {
|
|
@@ -39,6 +54,7 @@ export default class Domain extends DomainCommon {
|
|
|
39
54
|
url: URL.fromString(data.url),
|
|
40
55
|
options: {
|
|
41
56
|
doNotFollowRedirects: true,
|
|
57
|
+
timeout: DOMAIN_VERIFICATION_TIMEOUT_IN_MS,
|
|
42
58
|
httpAgent,
|
|
43
59
|
httpsAgent,
|
|
44
60
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Domain.js","sourceRoot":"","sources":["../../../../Server/Types/Domain.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAyB,MAAM,iBAAiB,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAItE,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,qBAAqB,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY;IAC9C
|
|
1
|
+
{"version":3,"file":"Domain.js","sourceRoot":"","sources":["../../../../Server/Types/Domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,28 @@ import Permission from "../../../Types/Permission";
|
|
|
12
12
|
import ApiKeyPermissionService from "../../Services/ApiKeyPermissionService";
|
|
13
13
|
import CaptureSpan from "../Telemetry/CaptureSpan";
|
|
14
14
|
import UserPermissionUtil from "../UserPermission/UserPermission";
|
|
15
|
+
/*
|
|
16
|
+
* Permission.AuthenticatedRequest is a marker, not a capability. It says "some
|
|
17
|
+
* authenticated principal made this call" - its own definition names API keys
|
|
18
|
+
* first - and unlike every other entry in these lists it has no PermissionProps,
|
|
19
|
+
* so it never appears in the admin picker and nobody can grant or revoke it per
|
|
20
|
+
* key. File and FileModel are the only models that name it, which is what bounds
|
|
21
|
+
* what including it here can widen.
|
|
22
|
+
*
|
|
23
|
+
* It is in the list because of TenantPermission.isAccessGrantedOnlyByCurrentUser.
|
|
24
|
+
* That predicate asks whether the ONLY thing letting a caller through a model's
|
|
25
|
+
* gate is the auto-granted CurrentUser - i.e. whether they are here as nothing
|
|
26
|
+
* more than some logged-in user - and when it says yes the caller is held to
|
|
27
|
+
* rows they own, which an API key can never satisfy because it has no userId.
|
|
28
|
+
* Without AuthenticatedRequest an API key intersects File's create list down to
|
|
29
|
+
* CurrentUser alone and answers yes to that question, which is simply the wrong
|
|
30
|
+
* description of a key: it is not a user acting on their own rows.
|
|
31
|
+
*
|
|
32
|
+
* On File as it stands today the wrong answer is harmless - File declares no
|
|
33
|
+
* user column, so the ownership branch returns before it can bite. The grant is
|
|
34
|
+
* here so that stays a fact about File's schema rather than the only thing
|
|
35
|
+
* holding API-key file access up.
|
|
36
|
+
*/
|
|
15
37
|
export default class APIKeyAccessPermission {
|
|
16
38
|
static async getDefaultApiGlobalPermission(projectId) {
|
|
17
39
|
return {
|
|
@@ -20,6 +42,7 @@ export default class APIKeyAccessPermission {
|
|
|
20
42
|
Permission.Public,
|
|
21
43
|
Permission.User,
|
|
22
44
|
Permission.CurrentUser,
|
|
45
|
+
Permission.AuthenticatedRequest,
|
|
23
46
|
],
|
|
24
47
|
_type: "UserGlobalAccessPermission",
|
|
25
48
|
};
|
|
@@ -31,6 +54,7 @@ export default class APIKeyAccessPermission {
|
|
|
31
54
|
Permission.Public,
|
|
32
55
|
Permission.User,
|
|
33
56
|
Permission.CurrentUser,
|
|
57
|
+
Permission.AuthenticatedRequest,
|
|
34
58
|
Permission.ProjectOwner,
|
|
35
59
|
],
|
|
36
60
|
_type: "UserGlobalAccessPermission",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessPermission.js","sourceRoot":"","sources":["../../../../../Server/Utils/APIKey/AccessPermission.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,UAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,uBAEN,MAAM,wCAAwC,CAAC;AAChD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAErB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAC/C,SAAmB;QAEnB,OAAO;YACL,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,iBAAiB,EAAE;gBACjB,UAAU,CAAC,MAAM;gBACjB,UAAU,CAAC,IAAI;gBACf,UAAU,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"AccessPermission.js","sourceRoot":"","sources":["../../../../../Server/Utils/APIKey/AccessPermission.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,UAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,uBAEN,MAAM,wCAAwC,CAAC;AAChD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAErB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAC/C,SAAmB;QAEnB,OAAO;YACL,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,iBAAiB,EAAE;gBACjB,UAAU,CAAC,MAAM;gBACjB,UAAU,CAAC,IAAI;gBACf,UAAU,CAAC,WAAW;gBACtB,UAAU,CAAC,oBAAoB;aAChC;YACD,KAAK,EAAE,4BAA4B;SACpC,CAAC;IACJ,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B,CACjD,SAAmB;QAEnB,OAAO;YACL,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,iBAAiB,EAAE;gBACjB,UAAU,CAAC,MAAM;gBACjB,UAAU,CAAC,IAAI;gBACf,UAAU,CAAC,WAAW;gBACtB,UAAU,CAAC,oBAAoB;gBAC/B,UAAU,CAAC,YAAY;aACxB;YACD,KAAK,EAAE,4BAA4B;SACpC,CAAC;IACJ,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,kCAAkC,CACpD,SAAmB;QAEnB,MAAM,eAAe,GAA0B,EAAE,CAAC;QAElD,eAAe,CAAC,IAAI,CAAC;YACnB,UAAU,EAAE,UAAU,CAAC,YAAY;YACnC,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;QAEH,MAAM,UAAU,GACd,kBAAkB,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC;QAErE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAExE,OAAO,UAAU,CAAC;IACpB,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAC9C,SAAmB,EACnB,QAAkB;QAElB,+DAA+D;QAC/D,MAAM,oBAAoB,GACxB,MAAM,uBAAuB,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAEpE,MAAM,eAAe,GAA0B,oBAAoB,CAAC,GAAG,CACrE,CAAC,GAAwB,EAAkB,EAAE;YAC3C,OAAO;gBACL,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,KAAK,EAAE,gBAAgB;aACxB,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,MAAM,UAAU,GACd,kBAAkB,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC;QAErE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAExE,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA/EqB;IADnB,WAAW,EAAE;;qCAED,QAAQ;;iEAYpB;AAGmB;IADnB,WAAW,EAAE;;qCAED,QAAQ;;mEAapB;AAGmB;IADnB,WAAW,EAAE;;qCAED,QAAQ;;sEAgBpB;AAGmB;IADnB,WAAW,EAAE;;qCAED,QAAQ;QACT,QAAQ;;gEAuBnB"}
|