@oneuptime/common 12.0.11 → 12.0.13
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/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +32 -5
- package/Models/DatabaseModels/NetworkDevice.ts +64 -0
- package/Models/DatabaseModels/StatusPage.ts +59 -0
- package/Models/DatabaseModels/StatusPageOidc.ts +2 -0
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +19 -2
- package/Server/API/AIChatAPI.ts +55 -56
- package/Server/API/CommonAPI.ts +89 -0
- package/Server/API/MicrosoftTeamsAPI.ts +20 -9
- package/Server/API/SlackAPI.ts +13 -10
- package/Server/API/StatusPageAPI.ts +2197 -2128
- package/Server/API/TelemetryAPI.ts +72 -3
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.ts +30 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
- package/Server/Middleware/UserAuthorization.ts +11 -2
- package/Server/Services/ApiKeyPermissionService.ts +116 -2
- package/Server/Services/DatabaseService.ts +17 -6
- package/Server/Services/LogAggregationService.ts +34 -0
- package/Server/Services/LogService.ts +21 -0
- package/Server/Services/NetworkSiteService.ts +12 -0
- package/Server/Services/SpanService.ts +21 -0
- package/Server/Services/TraceAggregationService.ts +15 -0
- package/Server/Services/WorkspaceNotificationRuleService.ts +172 -220
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +9 -0
- package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -16
- package/Server/Types/Workflow/Components/Conditions/IfElse.ts +9 -0
- package/Server/Types/Workflow/Components/JavaScript.ts +9 -0
- package/Server/Utils/APIKey/AccessPermission.ts +16 -40
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +144 -0
- package/Server/Utils/LogRedaction.ts +576 -0
- package/Server/Utils/Logger.ts +123 -46
- package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +94 -23
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +12 -0
- package/Server/Utils/Monitor/MonitorResource.ts +29 -9
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +28 -7
- package/Server/Utils/SessionReplay/SessionReplayGateCacheStore.ts +56 -10
- package/Server/Utils/StartServer.ts +30 -9
- package/Server/Utils/StatusPageSearchEngineIndexing.ts +33 -0
- package/Server/Utils/Telemetry/ResourceEntityFilter.ts +441 -0
- package/Server/Utils/VM/VMRunner.ts +693 -874
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +488 -46
- package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +300 -0
- package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +130 -0
- package/Tests/Models/DatabaseModels/DatabaseBaseModelToJSONObjectCache.test.ts +180 -0
- package/Tests/Models/StatusPageEnableSearchEngineIndexing.test.ts +157 -0
- package/Tests/Server/API/AIChatCancelAndFeedback.test.ts +23 -1
- package/Tests/Server/API/AIChatRouteAuthorization.test.ts +785 -0
- package/Tests/Server/API/BaseAPIApiKeyAuth.test.ts +21 -8
- package/Tests/Server/API/CommonAPIAuthGuard.test.ts +290 -0
- package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +7 -1
- package/Tests/Server/API/StatusPageOverviewCache.test.ts +474 -0
- package/Tests/Server/API/StatusPageSeoSearchEngineIndexing.test.ts +189 -0
- package/Tests/Server/Infrastructure/InMemoryTTLCache.test.ts +158 -0
- package/Tests/Server/Infrastructure/Postgres/DeviceRoleAndDeclaredLinkParentMigration.test.ts +9 -60
- package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +24 -15
- package/Tests/Server/Middleware/UserAuthorization.test.ts +79 -0
- package/Tests/Server/Services/AddNetworkDeviceReachabilityColumnsMigration.test.ts +332 -0
- package/Tests/Server/Services/ApiKeyPermissionService.test.ts +347 -0
- package/Tests/Server/Services/DatabaseServiceUpdateDebugLogging.test.ts +282 -0
- package/Tests/Server/Services/NetworkSiteService.test.ts +56 -2
- package/Tests/Server/Services/TelemetryResourceFacetFilters.test.ts +267 -0
- package/Tests/Server/Services/WorkspaceNotificationRuleTestRuleChannels.test.ts +702 -0
- package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +165 -0
- package/Tests/Server/Types/Workflow/Components/CustomCodeScriptError.test.ts +121 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +48 -36
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +213 -0
- package/Tests/Server/Utils/LogRedaction.test.ts +415 -0
- package/Tests/Server/Utils/LoggerCredentialLeak.test.ts +245 -0
- package/Tests/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.test.ts +374 -4
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorJavascriptExpression.test.ts +92 -0
- package/Tests/Server/Utils/Monitor/MonitorResourceIngestedStepSelection.test.ts +455 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceReachabilityRoundTrip.test.ts +369 -0
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +86 -8
- package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +64 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayGateCacheStore.test.ts +207 -0
- package/Tests/Server/Utils/StartServerBodyVerify.test.ts +335 -0
- package/Tests/Server/Utils/StatusPageSearchEngineIndexing.test.ts +60 -0
- package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +435 -0
- package/Tests/Server/Utils/VM/VMRunnerIsolation.test.ts +385 -0
- package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +3 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +607 -62
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsInstalledTeamIdSpace.test.ts +778 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsTeamInstalls.test.ts +44 -10
- package/Tests/Types/API/HostnameFromAuthority.test.ts +164 -0
- package/Tests/Types/Database/AccessControl/ColumnAccessControlCache.test.ts +344 -0
- package/Tests/Types/Database/DatabasePropertyFindOperator.test.ts +518 -0
- package/Tests/Types/Database/TableColumnMetadataCache.test.ts +286 -0
- package/Tests/Types/Monitor/MonitorStep.test.ts +100 -0
- package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +360 -0
- package/Tests/Types/StatusPage/SearchEngineIndexing.test.ts +86 -0
- package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +254 -0
- package/Tests/UI/Components/CardSelect.test.tsx +1021 -0
- package/Tests/UI/Components/MasterPage.test.tsx +36 -1
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +66 -1
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +115 -6
- package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +610 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +114 -45
- package/Types/API/Hostname.ts +79 -0
- package/Types/Database/AccessControl/ColumnAccessControl.ts +33 -11
- package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +33 -11
- package/Types/Database/DatabaseProperty.ts +38 -0
- package/Types/Database/TableColumn.ts +34 -7
- package/Types/Events/Recurring.ts +16 -1
- package/Types/Monitor/CustomCodeMonitor/CustomCodeMonitorResponse.ts +14 -2
- package/Types/Monitor/MonitorStep.ts +13 -1
- package/Types/Monitor/MonitorType.ts +345 -40
- package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +43 -0
- package/Types/StatusPage/SearchEngineIndexing.ts +61 -0
- package/Types/Telemetry/ResourceEntityFacet.ts +211 -0
- package/UI/Components/CardSelect/CardSelect.tsx +714 -105
- package/UI/Components/EmptyState/EmptyState.tsx +8 -1
- package/UI/Components/Footer/Footer.tsx +32 -6
- package/UI/Components/Forms/Fields/FormField.tsx +3 -0
- package/UI/Components/Forms/Types/Field.ts +8 -0
- package/UI/Components/Loader/PageLoader.tsx +29 -8
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +26 -4
- package/UI/Components/Markdown.tsx/LazyMarkdownViewer.tsx +17 -1
- package/UI/Components/MasterPage/MasterPage.tsx +24 -11
- package/Utils/Monitor/MonitorMetricType.ts +16 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +60 -8
- package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +262 -0
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +41 -24
- package/Utils/Telemetry/CrossSignalScope.ts +75 -4
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +20 -4
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +66 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +60 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOidc.js +2 -0
- package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +48 -35
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +59 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +20 -6
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +13 -10
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +745 -673
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +34 -3
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.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/UserAuthorization.js +6 -2
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Services/ApiKeyPermissionService.js +90 -1
- package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +15 -6
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +2 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/LogService.js +16 -0
- package/build/dist/Server/Services/LogService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +12 -0
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/SpanService.js +16 -0
- package/build/dist/Server/Services/SpanService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +2 -0
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +137 -164
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +9 -0
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +21 -13
- package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js +8 -0
- package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js +8 -0
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Server/Utils/APIKey/AccessPermission.js +9 -32
- package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +87 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/LogRedaction.js +449 -0
- package/build/dist/Server/Utils/LogRedaction.js.map +1 -0
- package/build/dist/Server/Utils/Logger.js +98 -45
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +65 -13
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +12 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +20 -3
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +27 -7
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js +29 -10
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +10 -7
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/StatusPageSearchEngineIndexing.js +24 -0
- package/build/dist/Server/Utils/StatusPageSearchEngineIndexing.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +311 -0
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -0
- package/build/dist/Server/Utils/VM/VMRunner.js +402 -525
- package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +366 -37
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/API/Hostname.js +63 -0
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +20 -6
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +20 -6
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/DatabaseProperty.js +38 -0
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/TableColumn.js +24 -6
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Events/Recurring.js +13 -1
- package/build/dist/Types/Events/Recurring.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +9 -1
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +330 -31
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/StatusPage/SearchEngineIndexing.js +55 -0
- package/build/dist/Types/StatusPage/SearchEngineIndexing.js.map +1 -0
- package/build/dist/Types/Telemetry/ResourceEntityFacet.js +156 -0
- package/build/dist/Types/Telemetry/ResourceEntityFacet.js.map +1 -0
- package/build/dist/UI/Components/CardSelect/CardSelect.js +360 -40
- package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
- package/build/dist/UI/Components/EmptyState/EmptyState.js +1 -1
- package/build/dist/UI/Components/EmptyState/EmptyState.js.map +1 -1
- package/build/dist/UI/Components/Footer/Footer.js +7 -4
- package/build/dist/UI/Components/Footer/Footer.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Loader/PageLoader.js +15 -5
- package/build/dist/UI/Components/Loader/PageLoader.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +16 -3
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js +13 -1
- package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js +10 -2
- package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +13 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +34 -7
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +177 -0
- package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +23 -27
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +44 -4
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import OneUptimeDate from "../../Types/Date";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* The one place that decides whether a NetworkDevice is reachable.
|
|
5
|
+
*
|
|
6
|
+
* The rule this replaces was "lastSeenAt within a fixed 15 minutes = up",
|
|
7
|
+
* which conflates two different facts:
|
|
8
|
+
*
|
|
9
|
+
* 1. the device did not answer the probe (the device is down), and
|
|
10
|
+
* 2. the probe has not asked it recently (WE are behind).
|
|
11
|
+
*
|
|
12
|
+
* (2) is not a device outage. A probe hands out at most a bounded number of
|
|
13
|
+
* devices per fetch cycle, so a large fleet's real poll cadence is
|
|
14
|
+
* `fleetSize / claimRate` minutes however short the configured interval is —
|
|
15
|
+
* and a fleet whose cadence exceeds the freshness window paints healthy
|
|
16
|
+
* devices red on the device list, the topology graph and the site rollup,
|
|
17
|
+
* while the device's own Interfaces tab (written by that same successful
|
|
18
|
+
* walk) still reads "Up". A device polled on a 30-minute interval was
|
|
19
|
+
* permanently "Down" for the same reason: it can never satisfy a 15-minute
|
|
20
|
+
* window.
|
|
21
|
+
*
|
|
22
|
+
* So reachability is now the OUTCOME of the most recent poll —
|
|
23
|
+
* NetworkDevice.isReachable, stamped by the walk pipeline on every ingested
|
|
24
|
+
* walk — and freshness is only a backstop for "the polling pipeline itself
|
|
25
|
+
* stopped", measured generously against the device's own interval.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
export enum NetworkDeviceReachability {
|
|
29
|
+
Up = "Up",
|
|
30
|
+
Down = "Down",
|
|
31
|
+
Pending = "Pending",
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* Mirrors the NetworkDevice.pollingIntervalInMinutes column default, and is
|
|
36
|
+
* what a NULL interval (rows written before that column existed) is read as.
|
|
37
|
+
*/
|
|
38
|
+
export const DEFAULT_DEVICE_POLLING_INTERVAL_IN_MINUTES: number = 5;
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
* Consecutive missed polls before a device's last verdict is reported as
|
|
42
|
+
* STALE. Staleness is an annotation on the verdict, never the verdict
|
|
43
|
+
* itself — see getReachability for why turning it into "Down" would both
|
|
44
|
+
* re-create this bug at a longer timescale and put the pill permanently at
|
|
45
|
+
* odds with the summary counts.
|
|
46
|
+
*
|
|
47
|
+
* Deliberately generous: a device that stops answering is marked
|
|
48
|
+
* unreachable by the very next poll, so the only thing this flags is the
|
|
49
|
+
* whole polling pipeline going silent (probe offline, claim loop wedged,
|
|
50
|
+
* walk queue backed up). Ten missed cycles is unambiguous.
|
|
51
|
+
*/
|
|
52
|
+
export const DEVICE_MISSED_POLL_ALLOWANCE: number = 10;
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* Floor under the window above, so a device on a one-minute interval is not
|
|
56
|
+
* declared out of contact after ten minutes of ordinary scheduling jitter.
|
|
57
|
+
*/
|
|
58
|
+
export const DEVICE_MIN_STALE_WINDOW_IN_MINUTES: number = 60;
|
|
59
|
+
|
|
60
|
+
// The columns this util reads. Every caller selects exactly these.
|
|
61
|
+
export interface DeviceReachabilityInput {
|
|
62
|
+
/*
|
|
63
|
+
* Outcome of the most recent poll: true = the device answered, false = the
|
|
64
|
+
* probe could not reach it, null/undefined = never polled, or a row
|
|
65
|
+
* written before this column existed.
|
|
66
|
+
*/
|
|
67
|
+
isReachable?: boolean | null | undefined;
|
|
68
|
+
// When the probe last ATTEMPTED a walk, whatever the outcome.
|
|
69
|
+
lastPolledAt?: Date | string | null | undefined;
|
|
70
|
+
// When the device last ANSWERED one.
|
|
71
|
+
lastSeenAt?: Date | string | null | undefined;
|
|
72
|
+
// The device's own schedule; sizes the staleness backstop.
|
|
73
|
+
pollingIntervalInMinutes?: number | null | undefined;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface DeviceReachabilityResult {
|
|
77
|
+
status: NetworkDeviceReachability;
|
|
78
|
+
/*
|
|
79
|
+
* True when the last poll ATTEMPT is older than the staleness window —
|
|
80
|
+
* i.e. this verdict is being read off data nothing has refreshed for a
|
|
81
|
+
* long time. Strictly independent of `status`: it qualifies the verdict
|
|
82
|
+
* ("and nobody has checked lately") rather than changing it, and either
|
|
83
|
+
* an Up or a Down device can be stale.
|
|
84
|
+
*/
|
|
85
|
+
isStale: boolean;
|
|
86
|
+
// The window `isStale` was measured against, so the UI can name it.
|
|
87
|
+
staleWindowInMinutes: number;
|
|
88
|
+
// Latest of lastPolledAt / lastSeenAt; null when neither is set.
|
|
89
|
+
lastContactAt: Date | null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const MS_PER_MINUTE: number = 60 * 1000;
|
|
93
|
+
|
|
94
|
+
export default class DeviceReachabilityUtil {
|
|
95
|
+
/*
|
|
96
|
+
* The device's poll interval as a usable positive number. NULL, zero,
|
|
97
|
+
* negative and non-finite values all fall back to the column default —
|
|
98
|
+
* the same clamp NetworkDeviceService.claimDevicesForPolling applies when
|
|
99
|
+
* it advances nextPollAt, so the window and the schedule agree.
|
|
100
|
+
*/
|
|
101
|
+
public static getPollingIntervalInMinutes(
|
|
102
|
+
pollingIntervalInMinutes?: number | null | undefined,
|
|
103
|
+
): number {
|
|
104
|
+
if (
|
|
105
|
+
typeof pollingIntervalInMinutes !== "number" ||
|
|
106
|
+
!Number.isFinite(pollingIntervalInMinutes) ||
|
|
107
|
+
pollingIntervalInMinutes <= 0
|
|
108
|
+
) {
|
|
109
|
+
return DEFAULT_DEVICE_POLLING_INTERVAL_IN_MINUTES;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return Math.max(pollingIntervalInMinutes, 1);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// How long a device may go unpolled before its last verdict goes stale.
|
|
116
|
+
public static getStaleWindowInMinutes(
|
|
117
|
+
pollingIntervalInMinutes?: number | null | undefined,
|
|
118
|
+
): number {
|
|
119
|
+
const interval: number = DeviceReachabilityUtil.getPollingIntervalInMinutes(
|
|
120
|
+
pollingIntervalInMinutes,
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
return Math.max(
|
|
124
|
+
interval * DEVICE_MISSED_POLL_ALLOWANCE,
|
|
125
|
+
DEVICE_MIN_STALE_WINDOW_IN_MINUTES,
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
public static getReachability(
|
|
130
|
+
device: DeviceReachabilityInput,
|
|
131
|
+
now?: Date | undefined,
|
|
132
|
+
): DeviceReachabilityResult {
|
|
133
|
+
const currentDate: Date = now || OneUptimeDate.getCurrentDate();
|
|
134
|
+
|
|
135
|
+
const staleWindowInMinutes: number =
|
|
136
|
+
DeviceReachabilityUtil.getStaleWindowInMinutes(
|
|
137
|
+
device.pollingIntervalInMinutes,
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
const lastPolledAt: Date | null = toDate(device.lastPolledAt);
|
|
141
|
+
const lastSeenAt: Date | null = toDate(device.lastSeenAt);
|
|
142
|
+
|
|
143
|
+
/*
|
|
144
|
+
* Newest of the two. lastPolledAt alone would be wrong for rows written
|
|
145
|
+
* before it existed (they only have lastSeenAt), and lastSeenAt alone
|
|
146
|
+
* would call a device that is being polled and failing "out of contact"
|
|
147
|
+
* — it is very much in contact, it is just down.
|
|
148
|
+
*/
|
|
149
|
+
const lastContactAt: Date | null = newerOf(lastPolledAt, lastSeenAt);
|
|
150
|
+
|
|
151
|
+
const isStale: boolean = lastContactAt
|
|
152
|
+
? currentDate.getTime() - lastContactAt.getTime() >
|
|
153
|
+
staleWindowInMinutes * MS_PER_MINUTE
|
|
154
|
+
: false;
|
|
155
|
+
|
|
156
|
+
const result: (
|
|
157
|
+
status: NetworkDeviceReachability,
|
|
158
|
+
) => DeviceReachabilityResult = (
|
|
159
|
+
status: NetworkDeviceReachability,
|
|
160
|
+
): DeviceReachabilityResult => {
|
|
161
|
+
return {
|
|
162
|
+
status: status,
|
|
163
|
+
isStale: isStale,
|
|
164
|
+
staleWindowInMinutes: staleWindowInMinutes,
|
|
165
|
+
lastContactAt: lastContactAt,
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/*
|
|
170
|
+
* The probe asked and got nothing. Authoritative however long ago it
|
|
171
|
+
* was — nothing since has said otherwise.
|
|
172
|
+
*/
|
|
173
|
+
if (device.isReachable === false) {
|
|
174
|
+
return result(NetworkDeviceReachability.Down);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/*
|
|
178
|
+
* The probe asked and the device answered. The answer stands until a
|
|
179
|
+
* later poll contradicts it.
|
|
180
|
+
*
|
|
181
|
+
* Staleness deliberately does NOT override this. Turning "we have not
|
|
182
|
+
* asked in a while" into "the device is down" is the exact move this
|
|
183
|
+
* whole change exists to undo — doing it again at a longer timescale
|
|
184
|
+
* would just relocate the bug. It is also not expressible as a database
|
|
185
|
+
* filter (the window is per-device, derived from each row's own
|
|
186
|
+
* interval), so a status that depended on it could never agree with the
|
|
187
|
+
* summary counts or the Status filter, which have to run in SQL over
|
|
188
|
+
* `isReachable`. A verdict the list cannot count or filter by is a
|
|
189
|
+
* verdict that contradicts itself on screen.
|
|
190
|
+
*
|
|
191
|
+
* `isStale` still comes back in the result, and the UI shows it as what
|
|
192
|
+
* it is — "nothing has polled this device in N minutes, check its
|
|
193
|
+
* probe" — which is a different and more actionable statement than
|
|
194
|
+
* "this device is down".
|
|
195
|
+
*/
|
|
196
|
+
if (device.isReachable === true) {
|
|
197
|
+
return result(NetworkDeviceReachability.Up);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/*
|
|
201
|
+
* No recorded outcome. Either the device has genuinely never been polled
|
|
202
|
+
* (Pending), or the row predates the column — in which case lastSeenAt
|
|
203
|
+
* is all we have and freshness is the only rule available. The upgrade
|
|
204
|
+
* migration backfills these, so this is a short-lived path.
|
|
205
|
+
*/
|
|
206
|
+
if (!lastSeenAt) {
|
|
207
|
+
/*
|
|
208
|
+
* Polled but never once answered — the probe has been trying and
|
|
209
|
+
* failing, which is Down, not "not set up yet".
|
|
210
|
+
*/
|
|
211
|
+
if (lastPolledAt) {
|
|
212
|
+
return result(NetworkDeviceReachability.Down);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return result(NetworkDeviceReachability.Pending);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return result(
|
|
219
|
+
isStale ? NetworkDeviceReachability.Down : NetworkDeviceReachability.Up,
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// Shorthand for callers that only render the pill.
|
|
224
|
+
public static getStatus(
|
|
225
|
+
device: DeviceReachabilityInput,
|
|
226
|
+
now?: Date | undefined,
|
|
227
|
+
): NetworkDeviceReachability {
|
|
228
|
+
return DeviceReachabilityUtil.getReachability(device, now).status;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/*
|
|
233
|
+
* Tolerant of everything an API payload can carry in a date column: a Date,
|
|
234
|
+
* an ISO string, the serialized {_type, value} form, null, undefined and the
|
|
235
|
+
* empty string. Anything unparseable reads as "not set" rather than as an
|
|
236
|
+
* Invalid Date that would silently compare false against every window.
|
|
237
|
+
*/
|
|
238
|
+
function toDate(value: Date | string | null | undefined): Date | null {
|
|
239
|
+
if (value === null || value === undefined || value === "") {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const parsed: Date = OneUptimeDate.fromString(value);
|
|
244
|
+
|
|
245
|
+
if (!(parsed instanceof Date) || Number.isNaN(parsed.getTime())) {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
return parsed;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
function newerOf(first: Date | null, second: Date | null): Date | null {
|
|
253
|
+
if (!first) {
|
|
254
|
+
return second;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (!second) {
|
|
258
|
+
return first;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return first.getTime() >= second.getTime() ? first : second;
|
|
262
|
+
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import DeviceReachabilityUtil, {
|
|
2
|
+
NetworkDeviceReachability,
|
|
3
|
+
} from "../NetworkDevice/DeviceReachabilityUtil";
|
|
4
|
+
|
|
1
5
|
/*
|
|
2
6
|
* Worst-of health rollup for a NetworkSite's device subtree.
|
|
3
7
|
*
|
|
@@ -16,8 +20,17 @@ export interface DeviceHealthState {
|
|
|
16
20
|
currentMonitorStatusId?: string | null | undefined;
|
|
17
21
|
// Priority of that status row; missing when the row no longer exists.
|
|
18
22
|
monitorStatusPriority?: number | null | undefined;
|
|
19
|
-
|
|
23
|
+
/*
|
|
24
|
+
* The SNMP fallback for devices no monitor stamps, resolved by the shared
|
|
25
|
+
* DeviceReachabilityUtil rule: the OUTCOME of the last poll, not the age
|
|
26
|
+
* of the last success. Rolling a site up from freshness alone is what
|
|
27
|
+
* turned "the probe is behind on a 900-device fleet" into a red site card
|
|
28
|
+
* over devices that were all answering.
|
|
29
|
+
*/
|
|
30
|
+
isReachable?: boolean | null | undefined;
|
|
31
|
+
lastPolledAt?: Date | null | undefined;
|
|
20
32
|
lastSeenAt?: Date | null | undefined;
|
|
33
|
+
pollingIntervalInMinutes?: number | null | undefined;
|
|
21
34
|
}
|
|
22
35
|
|
|
23
36
|
// A project MonitorStatus row a freshness fallback can resolve to.
|
|
@@ -27,32 +40,27 @@ export interface RollupStatusOption {
|
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
export class SiteStatusRollupUtil {
|
|
30
|
-
// A device is considered alive when SNMP data arrived within this window.
|
|
31
|
-
public static readonly DEFAULT_FRESHNESS_WINDOW_IN_MINUTES: number = 15;
|
|
32
|
-
|
|
33
43
|
/*
|
|
34
44
|
* Returns the winning MonitorStatus id for a set of devices, or null when
|
|
35
|
-
* no device contributes anything (empty subtree, or
|
|
36
|
-
*
|
|
37
|
-
*
|
|
45
|
+
* no device contributes anything (empty subtree, or fallbacks unavailable
|
|
46
|
+
* because the project has no operational/offline rows) - the caller
|
|
47
|
+
* treats null as "leave the site's status untouched".
|
|
38
48
|
*
|
|
39
49
|
* Per device: a stamped monitor status (with a known priority) wins;
|
|
40
|
-
* otherwise
|
|
41
|
-
* isOperationalState row and
|
|
42
|
-
*
|
|
50
|
+
* otherwise the device's SNMP reachability maps Up to the project's
|
|
51
|
+
* isOperationalState row and Down to its isOfflineState row. A device
|
|
52
|
+
* that has never been polled contributes nothing at all - it is not
|
|
53
|
+
* evidence of an outage, and counting it as one used to pin a site red
|
|
54
|
+
* for as long as it took the first walk to land. Priority ties keep the
|
|
55
|
+
* first contributor (stable).
|
|
43
56
|
*/
|
|
44
57
|
public static worstStatus(data: {
|
|
45
58
|
deviceStates: Array<DeviceHealthState>;
|
|
46
59
|
operationalStatus?: RollupStatusOption | null | undefined;
|
|
47
60
|
offlineStatus?: RollupStatusOption | null | undefined;
|
|
48
61
|
now?: Date | undefined;
|
|
49
|
-
freshnessWindowInMinutes?: number | undefined;
|
|
50
62
|
}): string | null {
|
|
51
63
|
const now: Date = data.now || new Date();
|
|
52
|
-
const windowInMinutes: number =
|
|
53
|
-
data.freshnessWindowInMinutes ??
|
|
54
|
-
SiteStatusRollupUtil.DEFAULT_FRESHNESS_WINDOW_IN_MINUTES;
|
|
55
|
-
const windowInMs: number = windowInMinutes * 60 * 1000;
|
|
56
64
|
|
|
57
65
|
let winner: RollupStatusOption | null = null;
|
|
58
66
|
|
|
@@ -69,16 +77,25 @@ export class SiteStatusRollupUtil {
|
|
|
69
77
|
priority: device.monitorStatusPriority,
|
|
70
78
|
};
|
|
71
79
|
} else {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
const reachability: NetworkDeviceReachability =
|
|
81
|
+
DeviceReachabilityUtil.getStatus(
|
|
82
|
+
{
|
|
83
|
+
isReachable: device.isReachable,
|
|
84
|
+
lastPolledAt: device.lastPolledAt,
|
|
85
|
+
lastSeenAt: device.lastSeenAt,
|
|
86
|
+
pollingIntervalInMinutes: device.pollingIntervalInMinutes,
|
|
87
|
+
},
|
|
88
|
+
now,
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
if (reachability === NetworkDeviceReachability.Pending) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
78
94
|
|
|
79
|
-
candidate =
|
|
80
|
-
|
|
81
|
-
|
|
95
|
+
candidate =
|
|
96
|
+
reachability === NetworkDeviceReachability.Up
|
|
97
|
+
? data.operationalStatus || null
|
|
98
|
+
: data.offlineStatus || null;
|
|
82
99
|
}
|
|
83
100
|
|
|
84
101
|
if (!candidate) {
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import Dictionary from "../../Types/Dictionary";
|
|
2
|
+
import {
|
|
3
|
+
RESOURCE_ENTITY_FACET_KEYS,
|
|
4
|
+
ResourceEntityFacetSelections,
|
|
5
|
+
isResourceEntityFacetKey,
|
|
6
|
+
} from "../../Types/Telemetry/ResourceEntityFacet";
|
|
2
7
|
import OneUptimeDate from "../../Types/Date";
|
|
3
8
|
import TimeRange from "../../Types/Time/TimeRange";
|
|
4
9
|
import MetricExplorerUrl, {
|
|
@@ -61,6 +66,16 @@ const WHITESPACE: RegExp = /\s/;
|
|
|
61
66
|
export interface TelemetryCrossSignalScope {
|
|
62
67
|
/** Service ObjectID strings (Log/Span `primaryEntityId` values). */
|
|
63
68
|
serviceIds?: Array<string> | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Non-Service resource selections keyed by facet — e.g.
|
|
71
|
+
* `{ kubernetesClusterId: ["<id>"] }`. Deliberately NOT merged into
|
|
72
|
+
* `serviceIds`: a host or cluster id is not a `primaryEntityId` value for
|
|
73
|
+
* telemetry that carries a `service.name`, so it has to reach the target
|
|
74
|
+
* explorer as its own facet and be resolved to the resource's entity key
|
|
75
|
+
* there. Both the logs and the traces `filters` grammar carry arbitrary
|
|
76
|
+
* facet keys, so these survive the trip intact.
|
|
77
|
+
*/
|
|
78
|
+
resourceFacetSelections?: ResourceEntityFacetSelections | undefined;
|
|
64
79
|
/** Exact-match telemetry attribute filters. Keys may contain dots. */
|
|
65
80
|
attributes?: Dictionary<string> | undefined;
|
|
66
81
|
traceIds?: Array<string> | undefined;
|
|
@@ -165,6 +180,36 @@ function sanitizeAttributeEntries(
|
|
|
165
180
|
return entries;
|
|
166
181
|
}
|
|
167
182
|
|
|
183
|
+
/*
|
|
184
|
+
* Drop unknown facet keys and blank ids from a resource selection map. An
|
|
185
|
+
* unknown key would become a filter chip the target explorer cannot compile
|
|
186
|
+
* (it would land as an unknown column predicate), so it is reported as
|
|
187
|
+
* dropped by the callers instead of being emitted.
|
|
188
|
+
*/
|
|
189
|
+
function sanitizeResourceFacetSelections(
|
|
190
|
+
selections: ResourceEntityFacetSelections | undefined,
|
|
191
|
+
): Array<[string, Array<string>]> {
|
|
192
|
+
if (!selections) {
|
|
193
|
+
return [];
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
const entries: Array<[string, Array<string>]> = [];
|
|
197
|
+
|
|
198
|
+
for (const facetKey of RESOURCE_ENTITY_FACET_KEYS) {
|
|
199
|
+
if (!isResourceEntityFacetKey(facetKey)) {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const values: Array<string> = sanitizeValues(selections[facetKey]);
|
|
204
|
+
|
|
205
|
+
if (values.length > 0) {
|
|
206
|
+
entries.push([facetKey, values]);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return entries;
|
|
211
|
+
}
|
|
212
|
+
|
|
168
213
|
function isValidDate(value: Date | undefined): value is Date {
|
|
169
214
|
return value instanceof Date && !isNaN(value.getTime());
|
|
170
215
|
}
|
|
@@ -250,6 +295,12 @@ export function toLogsExplorerQueryParams(
|
|
|
250
295
|
tuples.push(["primaryEntityId", serviceIds]);
|
|
251
296
|
}
|
|
252
297
|
|
|
298
|
+
for (const [facetKey, values] of sanitizeResourceFacetSelections(
|
|
299
|
+
scope.resourceFacetSelections,
|
|
300
|
+
)) {
|
|
301
|
+
tuples.push([facetKey, values]);
|
|
302
|
+
}
|
|
303
|
+
|
|
253
304
|
const traceIds: Array<string> = sanitizeValues(scope.traceIds);
|
|
254
305
|
|
|
255
306
|
if (traceIds.length > 0) {
|
|
@@ -372,6 +423,19 @@ export function toTracesExplorerQueryParams(
|
|
|
372
423
|
filterTuples.push(["primaryEntityId", serviceId]);
|
|
373
424
|
}
|
|
374
425
|
|
|
426
|
+
/*
|
|
427
|
+
* The traces `filters` grammar is one [key, value] pair per chip, so a
|
|
428
|
+
* multi-valued selection fans out into one chip per id — the explorer
|
|
429
|
+
* groups same-key chips back into a single facet selection.
|
|
430
|
+
*/
|
|
431
|
+
for (const [facetKey, values] of sanitizeResourceFacetSelections(
|
|
432
|
+
scope.resourceFacetSelections,
|
|
433
|
+
)) {
|
|
434
|
+
for (const value of values) {
|
|
435
|
+
filterTuples.push([facetKey, value]);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
375
439
|
for (const [key, value] of sanitizeAttributeEntries(scope.attributes)) {
|
|
376
440
|
const tokenValue: string | null = isTraceTokenSafeKey(key)
|
|
377
441
|
? buildTraceSearchTokenValue(value)
|
|
@@ -438,10 +502,11 @@ export function toTracesExplorerQueryParams(
|
|
|
438
502
|
* Custom by the absolute params alone — see MetricExplorerUrl). The
|
|
439
503
|
* optional `metricName` argument names the query.
|
|
440
504
|
*
|
|
441
|
-
* Dropped: serviceIds, traceIds, spanIds,
|
|
442
|
-
* explorer's URL grammar has no service /
|
|
443
|
-
*
|
|
444
|
-
*
|
|
505
|
+
* Dropped: serviceIds, resourceFacetSelections, traceIds, spanIds,
|
|
506
|
+
* severityTexts — the metric explorer's URL grammar has no service /
|
|
507
|
+
* resource / trace / span / severity dimension (metrics carry a
|
|
508
|
+
* primaryEntityId column, but the explorer only parses metricName +
|
|
509
|
+
* attributes out of `metricQueries`).
|
|
445
510
|
*/
|
|
446
511
|
export function toMetricsExplorerQueryParams(
|
|
447
512
|
scope: TelemetryCrossSignalScope,
|
|
@@ -484,6 +549,12 @@ export function toMetricsExplorerQueryParams(
|
|
|
484
549
|
dropped.push("serviceIds");
|
|
485
550
|
}
|
|
486
551
|
|
|
552
|
+
for (const [facetKey] of sanitizeResourceFacetSelections(
|
|
553
|
+
scope.resourceFacetSelections,
|
|
554
|
+
)) {
|
|
555
|
+
dropped.push(facetKey);
|
|
556
|
+
}
|
|
557
|
+
|
|
487
558
|
if (sanitizeValues(scope.traceIds).length > 0) {
|
|
488
559
|
dropped.push("traceIds");
|
|
489
560
|
}
|
|
@@ -21,6 +21,22 @@ import JSONFunctions from "../../../Types/JSONFunctions";
|
|
|
21
21
|
import ObjectID from "../../../Types/ObjectID";
|
|
22
22
|
import Text from "../../../Types/Text";
|
|
23
23
|
import { BaseEntity, CreateDateColumn, DeleteDateColumn, PrimaryGeneratedColumn, UpdateDateColumn, VersionColumn, } from "typeorm";
|
|
24
|
+
/*
|
|
25
|
+
* Metadata-only vanilla instances used by toJSONObject to read table-column
|
|
26
|
+
* metadata. Frozen and never exported, so they can never be mutated or escape
|
|
27
|
+
* this file. _fromJSON must never use this cache — it mutates and returns the
|
|
28
|
+
* instance it constructs.
|
|
29
|
+
*/
|
|
30
|
+
const vanillaModelCache = new WeakMap();
|
|
31
|
+
function getVanillaModel(modelType) {
|
|
32
|
+
let vanillaModel = vanillaModelCache.get(modelType);
|
|
33
|
+
if (!vanillaModel) {
|
|
34
|
+
vanillaModel = new modelType();
|
|
35
|
+
Object.freeze(vanillaModel);
|
|
36
|
+
vanillaModelCache.set(modelType, vanillaModel);
|
|
37
|
+
}
|
|
38
|
+
return vanillaModel;
|
|
39
|
+
}
|
|
24
40
|
export default class DatabaseBaseModel extends BaseEntity {
|
|
25
41
|
constructor(id) {
|
|
26
42
|
super();
|
|
@@ -81,8 +97,7 @@ export default class DatabaseBaseModel extends BaseEntity {
|
|
|
81
97
|
return Boolean(this.allowUserQueryWithoutTenant);
|
|
82
98
|
}
|
|
83
99
|
getTableColumnMetadata(columnName) {
|
|
84
|
-
|
|
85
|
-
return dictionary[columnName];
|
|
100
|
+
return getTableColumn(this, columnName);
|
|
86
101
|
}
|
|
87
102
|
hasColumn(columnName) {
|
|
88
103
|
return Boolean(getTableColumn(this, columnName));
|
|
@@ -95,7 +110,8 @@ export default class DatabaseBaseModel extends BaseEntity {
|
|
|
95
110
|
return this.getColumnAccessControlForAllColumns()[columnName] || null;
|
|
96
111
|
}
|
|
97
112
|
getColumnAccessControlForAllColumns() {
|
|
98
|
-
|
|
113
|
+
// Copy: the helper's dictionary is cached per class and must stay pristine.
|
|
114
|
+
const dictionary = Object.assign({}, getColumnAccessControlForAllColumns(this));
|
|
99
115
|
const defaultColumns = [
|
|
100
116
|
"_id",
|
|
101
117
|
"createdAt",
|
|
@@ -313,7 +329,7 @@ export default class DatabaseBaseModel extends BaseEntity {
|
|
|
313
329
|
}
|
|
314
330
|
static toJSONObject(model, modelType) {
|
|
315
331
|
const json = {};
|
|
316
|
-
const vanillaModel =
|
|
332
|
+
const vanillaModel = getVanillaModel(modelType);
|
|
317
333
|
for (const key of vanillaModel.getTableColumns().columns) {
|
|
318
334
|
if (model[key] === undefined) {
|
|
319
335
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseBaseModel.js","sourceRoot":"","sources":["../../../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatabaseBaseModel.js","sourceRoot":"","sources":["../../../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts"],"names":[],"mappings":"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"}
|