@oneuptime/common 12.0.10 → 12.0.11
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/NetworkDevice.ts +44 -0
- package/Models/DatabaseModels/NetworkDeviceLink.ts +116 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787400000000-AddDeviceRoleAndDeclaredLinkParent.ts +52 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/NetworkDeviceLinkService.ts +338 -2
- package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +19 -5
- package/Server/Types/Database/JSONColumnQuery.ts +42 -4
- package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +186 -38
- package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +420 -112
- package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +543 -0
- package/Tests/App/Dashboard/PayAsYouGoFreePlan.test.ts +125 -0
- package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +612 -0
- package/Tests/App/Dashboard/SloWidgetChartRendering.test.tsx +536 -0
- package/Tests/Models/AnalyticsModels/CommonModel.test.ts +312 -0
- package/Tests/Server/Infrastructure/Postgres/DeviceRoleAndDeclaredLinkParentMigration.test.ts +250 -0
- package/Tests/Server/Infrastructure/Postgres/EpisodeMemberNotifyIndexesMigration.test.ts +46 -18
- package/Tests/Server/Services/NetworkDeviceLinkParentValidation.test.ts +1043 -0
- package/Tests/Server/Types/Billing/PayAsYouGoMeteredPricing.test.ts +125 -0
- package/Tests/Server/Types/Database/JSONColumnQuery.test.ts +508 -0
- package/Tests/Server/Utils/Telemetry/InventoryEntityRegistry.test.ts +668 -0
- package/Tests/Types/Billing/PayAsYouGoPricing.test.ts +64 -0
- package/Tests/Types/CustomField/CustomFieldTypeCorrespondence.test.ts +107 -0
- package/Tests/Types/Monitor/MonitorType.test.ts +62 -0
- package/Tests/UI/Components/Charts/ChartXAxisDataKey.test.tsx +256 -0
- package/Tests/UI/Components/Charts/DataPointUtil.test.ts +323 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +349 -1
- package/Tests/Utils/Monitor/NetworkDeviceRoleUtil.test.ts +502 -0
- package/Tests/Utils/Monitor/NetworkTopologyDeclaredHierarchy.test.ts +759 -0
- package/Tests/Utils/Schema/BaseSchema.test.ts +651 -0
- package/Types/Billing/PayAsYouGoPricing.ts +47 -0
- package/Types/CustomField/CustomFieldType.ts +28 -0
- package/Types/Monitor/MonitorType.ts +11 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +13 -0
- package/UI/Components/Charts/Area/AreaChart.tsx +4 -2
- package/UI/Components/Charts/Bar/BarChart.tsx +4 -2
- package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +13 -0
- package/UI/Components/Charts/Line/LineChart.tsx +4 -2
- package/UI/Components/Charts/Types/XAxis/XAxis.ts +6 -0
- package/UI/Components/Charts/Utils/DataPoint.ts +15 -12
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +55 -0
- package/Utils/Monitor/NetworkDeviceRoleUtil.ts +45 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +42 -2
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +45 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js +115 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787400000000-AddDeviceRoleAndDeclaredLinkParent.js +33 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787400000000-AddDeviceRoleAndDeclaredLinkParent.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLinkService.js +253 -1
- package/build/dist/Server/Services/NetworkDeviceLinkService.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +12 -5
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
- package/build/dist/Server/Types/Database/JSONColumnQuery.js +40 -4
- package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +128 -35
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
- package/build/dist/Types/Billing/PayAsYouGoPricing.js +41 -0
- package/build/dist/Types/Billing/PayAsYouGoPricing.js.map +1 -0
- package/build/dist/Types/CustomField/CustomFieldType.js +26 -0
- package/build/dist/Types/CustomField/CustomFieldType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +10 -0
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +2 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +2 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +12 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js +2 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js +17 -10
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +42 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js +37 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +25 -3
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,16 +12,92 @@ import Model from "../../Models/DatabaseModels/NetworkDeviceLink";
|
|
|
12
12
|
import NetworkDeviceService from "./NetworkDeviceService";
|
|
13
13
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
14
14
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
15
|
+
import ObjectID from "../../Types/ObjectID";
|
|
15
16
|
import QueryHelper from "../Types/Database/QueryHelper";
|
|
16
17
|
import RelationIdUtil from "../Utils/Database/RelationIdUtil";
|
|
17
18
|
import LIMIT_MAX from "../../Types/Database/LimitMax";
|
|
18
19
|
// Both spellings of each end, for the same reason RelationIdUtil exists.
|
|
19
20
|
const FROM_DEVICE_KEYS = ["fromDeviceId", "fromDevice"];
|
|
20
21
|
const TO_DEVICE_KEYS = ["toDeviceId", "toDevice"];
|
|
22
|
+
const PARENT_DEVICE_KEYS = ["parentDeviceId", "parentDevice"];
|
|
23
|
+
/*
|
|
24
|
+
* A device id, compared the way Postgres compares it.
|
|
25
|
+
*
|
|
26
|
+
* These columns are `uuid`. Postgres normalises and matches them without
|
|
27
|
+
* regard to case, and ObjectID.isValidUUID accepts either case, so an API
|
|
28
|
+
* client may legitimately send `AAAAAAAA-...` for a row stored as
|
|
29
|
+
* `aaaaaaaa-...`. A raw JS !== between the two says "different device" and
|
|
30
|
+
* refuses a parent that is in fact an end of the link. Note that the
|
|
31
|
+
* device-existence check below cannot disagree: it runs in Postgres.
|
|
32
|
+
*/
|
|
33
|
+
const sameDeviceId = (a, b) => {
|
|
34
|
+
return a.toString().toLowerCase() === b.toString().toLowerCase();
|
|
35
|
+
};
|
|
36
|
+
/*
|
|
37
|
+
* A declared parent has to be one of the two devices the link connects.
|
|
38
|
+
* Anything else is not a statement about this link at all, and the map
|
|
39
|
+
* would silently ignore it — the operator would have declared a hierarchy
|
|
40
|
+
* and watched nothing change.
|
|
41
|
+
*/
|
|
42
|
+
const assertParentIsAnEnd = (parentDeviceId, fromDeviceId, toDeviceId) => {
|
|
43
|
+
if (!parentDeviceId) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!sameDeviceId(parentDeviceId, fromDeviceId) &&
|
|
47
|
+
!sameDeviceId(parentDeviceId, toDeviceId)) {
|
|
48
|
+
throw new BadDataException("The parent device must be one of the two devices this link connects.");
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/*
|
|
52
|
+
* Which of `keys` the payload actually WRITES.
|
|
53
|
+
*
|
|
54
|
+
* Not the same question as which keys are present. TypeORM drops
|
|
55
|
+
* undefined-valued keys before it builds the SET list — "it doesn't make
|
|
56
|
+
* sense to update undefined properties" — so a key holding undefined
|
|
57
|
+
* changes nothing in the database. Treating it as a write makes this hook
|
|
58
|
+
* validate a row that is never going to exist: model the parent as
|
|
59
|
+
* cleared, accept the write, and leave the stored parent stranded on a
|
|
60
|
+
* link whose end just moved. Null and "" are different and really do
|
|
61
|
+
* clear the column, which is why the test is against undefined alone.
|
|
62
|
+
*/
|
|
63
|
+
const writtenKeys = (data, keys) => {
|
|
64
|
+
return keys.filter((key) => {
|
|
65
|
+
return key in data && data[key] !== undefined;
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
/*
|
|
69
|
+
* An update payload is a QueryDeepPartialEntity, so a column may hold a
|
|
70
|
+
* raw SQL-expression function instead of a value. RelationIdUtil reads one
|
|
71
|
+
* as null — indistinguishable from "cleared" — and the whole invariant is
|
|
72
|
+
* then checked against a row that bears no relation to what will be
|
|
73
|
+
* written. Nothing in the tree writes this model that way today; refusing
|
|
74
|
+
* is what keeps that true, and a caller who needs it can resolve the id
|
|
75
|
+
* before calling rather than have it silently mis-validated.
|
|
76
|
+
*/
|
|
77
|
+
const assertNoSqlExpression = (data, keys) => {
|
|
78
|
+
for (const key of keys) {
|
|
79
|
+
if (typeof data[key] === "function") {
|
|
80
|
+
throw new BadDataException(`${key} cannot be set to a raw SQL expression on a network device link — the link's ends and its declared parent have to be checked against each other, which needs actual ids.`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
21
84
|
export class Service extends DatabaseService {
|
|
22
85
|
constructor() {
|
|
23
86
|
super(Model);
|
|
24
87
|
}
|
|
88
|
+
/*
|
|
89
|
+
* onBeforeUpdate runs before DatabaseService permission-checks the query,
|
|
90
|
+
* so reading the raw client query as root would hand the hook rows from
|
|
91
|
+
* other projects. Re-apply the caller's tenant here. (Same helper as
|
|
92
|
+
* NetworkDeviceService and NetworkSiteService — private per service,
|
|
93
|
+
* which is the shape the codebase already settled on.)
|
|
94
|
+
*/
|
|
95
|
+
scopeQueryToCallerTenant(query, props) {
|
|
96
|
+
if (props.isRoot || !props.tenantId) {
|
|
97
|
+
return query;
|
|
98
|
+
}
|
|
99
|
+
return Object.assign(Object.assign({}, query), { projectId: props.tenantId });
|
|
100
|
+
}
|
|
25
101
|
/*
|
|
26
102
|
* Two guards, both about links that would be nonsense on the map:
|
|
27
103
|
*
|
|
@@ -34,12 +110,17 @@ export class Service extends DatabaseService {
|
|
|
34
110
|
*/
|
|
35
111
|
async onBeforeCreate(createBy) {
|
|
36
112
|
const data = createBy.data;
|
|
113
|
+
assertNoSqlExpression(data, [
|
|
114
|
+
...FROM_DEVICE_KEYS,
|
|
115
|
+
...TO_DEVICE_KEYS,
|
|
116
|
+
...PARENT_DEVICE_KEYS,
|
|
117
|
+
]);
|
|
37
118
|
const fromDeviceId = RelationIdUtil.read(data, FROM_DEVICE_KEYS);
|
|
38
119
|
const toDeviceId = RelationIdUtil.read(data, TO_DEVICE_KEYS);
|
|
39
120
|
if (!fromDeviceId || !toDeviceId) {
|
|
40
121
|
throw new BadDataException("A link needs a device at each end.");
|
|
41
122
|
}
|
|
42
|
-
if (fromDeviceId
|
|
123
|
+
if (sameDeviceId(fromDeviceId, toDeviceId)) {
|
|
43
124
|
throw new BadDataException("A device cannot be linked to itself.");
|
|
44
125
|
}
|
|
45
126
|
if (!createBy.data.projectId) {
|
|
@@ -58,8 +139,173 @@ export class Service extends DatabaseService {
|
|
|
58
139
|
if (devices.length !== 2) {
|
|
59
140
|
throw new BadDataException("Both devices must exist and belong to this project.");
|
|
60
141
|
}
|
|
142
|
+
assertParentIsAnEnd(RelationIdUtil.read(data, PARENT_DEVICE_KEYS), fromDeviceId, toDeviceId);
|
|
61
143
|
return { createBy, carryForward: null };
|
|
62
144
|
}
|
|
145
|
+
/*
|
|
146
|
+
* The same invariant, on the other write path.
|
|
147
|
+
*
|
|
148
|
+
* An update can break it two ways, and only one of them is obvious. The
|
|
149
|
+
* obvious one is setting a parent that is not on the link. The other is
|
|
150
|
+
* moving an END: re-point `toDevice` at a different switch and a parent
|
|
151
|
+
* that was valid a moment ago now names a device the link no longer
|
|
152
|
+
* touches. So the post-update state is what gets checked, assembled from
|
|
153
|
+
* the payload where it says something and from the stored row where it
|
|
154
|
+
* does not.
|
|
155
|
+
*
|
|
156
|
+
* An update matches a QUERY, not one row, and each matched row may have
|
|
157
|
+
* different ends — so every one of them is validated, and one bad row
|
|
158
|
+
* rejects the whole write. That is the conservative direction: a partial
|
|
159
|
+
* update that fixed some rows and left others contradicting themselves
|
|
160
|
+
* would be far harder to notice than a refusal.
|
|
161
|
+
*
|
|
162
|
+
* It also re-runs onBeforeCreate's TENANCY check on any end that moves.
|
|
163
|
+
* That check used to exist only on create, which left the update path
|
|
164
|
+
* able to re-point an end at another project's device — the exact threat
|
|
165
|
+
* onBeforeCreate's own comment describes, since the FK is global and the
|
|
166
|
+
* column is member-writable.
|
|
167
|
+
*
|
|
168
|
+
* Only costs a read when the payload touches an end or the parent at all;
|
|
169
|
+
* an update of ports or the bound monitor takes the early return.
|
|
170
|
+
*/
|
|
171
|
+
async onBeforeUpdate(updateBy) {
|
|
172
|
+
const data = (updateBy.data ||
|
|
173
|
+
{});
|
|
174
|
+
const hierarchyKeys = [
|
|
175
|
+
...FROM_DEVICE_KEYS,
|
|
176
|
+
...TO_DEVICE_KEYS,
|
|
177
|
+
...PARENT_DEVICE_KEYS,
|
|
178
|
+
];
|
|
179
|
+
if (writtenKeys(data, hierarchyKeys).length === 0) {
|
|
180
|
+
return { updateBy, carryForward: null };
|
|
181
|
+
}
|
|
182
|
+
assertNoSqlExpression(data, hierarchyKeys);
|
|
183
|
+
const writtenFromDeviceId = RelationIdUtil.read(data, FROM_DEVICE_KEYS);
|
|
184
|
+
const writtenToDeviceId = RelationIdUtil.read(data, TO_DEVICE_KEYS);
|
|
185
|
+
const writtenParentDeviceId = RelationIdUtil.read(data, PARENT_DEVICE_KEYS);
|
|
186
|
+
/*
|
|
187
|
+
* Writing the parent key with an empty value is how a hierarchy is
|
|
188
|
+
* cleared back to a peer link. RelationIdUtil reads that as null, which
|
|
189
|
+
* is indistinguishable from "not written" — so the presence of the key
|
|
190
|
+
* (with a value that will actually be written; see writtenKeys), not
|
|
191
|
+
* the truthiness of its value, is what decides whether the stored
|
|
192
|
+
* parent still applies.
|
|
193
|
+
*/
|
|
194
|
+
const isParentWritten = writtenKeys(data, PARENT_DEVICE_KEYS).length > 0;
|
|
195
|
+
const existingLinks = await this.findBy({
|
|
196
|
+
query: this.scopeQueryToCallerTenant(updateBy.query, updateBy.props),
|
|
197
|
+
select: {
|
|
198
|
+
_id: true,
|
|
199
|
+
projectId: true,
|
|
200
|
+
fromDeviceId: true,
|
|
201
|
+
toDeviceId: true,
|
|
202
|
+
parentDeviceId: true,
|
|
203
|
+
},
|
|
204
|
+
limit: LIMIT_MAX,
|
|
205
|
+
skip: 0,
|
|
206
|
+
props: {
|
|
207
|
+
isRoot: true,
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
/*
|
|
211
|
+
* An end that MOVED has to be re-checked for tenancy, exactly as
|
|
212
|
+
* onBeforeCreate checks it. The FK only requires the device row to
|
|
213
|
+
* exist — it is global — so without this a project member could
|
|
214
|
+
* re-point an end of their own link at another project's device and
|
|
215
|
+
* read its name straight off the map, which is the threat
|
|
216
|
+
* onBeforeCreate's own comment describes. The declared parent inherits
|
|
217
|
+
* the check for free: it has to be one of the two ends.
|
|
218
|
+
*
|
|
219
|
+
* Grouped by project because an update may in principle match links in
|
|
220
|
+
* more than one, and a device is only legitimate within its own.
|
|
221
|
+
*/
|
|
222
|
+
/*
|
|
223
|
+
* Deduped: writing the same id to both ends is a self-link, and that
|
|
224
|
+
* has its own error below — it must not surface as "device not found".
|
|
225
|
+
*/
|
|
226
|
+
const movedEndIds = [
|
|
227
|
+
...new Set([writtenFromDeviceId, writtenToDeviceId]
|
|
228
|
+
.filter((id) => {
|
|
229
|
+
return Boolean(id);
|
|
230
|
+
})
|
|
231
|
+
.map((id) => {
|
|
232
|
+
return id.toString();
|
|
233
|
+
})),
|
|
234
|
+
];
|
|
235
|
+
if (movedEndIds.length > 0 && existingLinks.length > 0) {
|
|
236
|
+
/*
|
|
237
|
+
* Every project this write touches: the caller's own tenant, plus
|
|
238
|
+
* the project of each row the query matched (a root caller has no
|
|
239
|
+
* tenant, and only root can match rows across more than one). The
|
|
240
|
+
* new end has to be legitimate in all of them.
|
|
241
|
+
*
|
|
242
|
+
* Guarded on there being matched rows at all: a query that matched
|
|
243
|
+
* nothing writes nothing, and there is no link for a foreign device
|
|
244
|
+
* to end up attached to.
|
|
245
|
+
*/
|
|
246
|
+
const projectIds = new Set();
|
|
247
|
+
if (updateBy.props.tenantId) {
|
|
248
|
+
projectIds.add(updateBy.props.tenantId.toString());
|
|
249
|
+
}
|
|
250
|
+
for (const link of existingLinks) {
|
|
251
|
+
if (link.projectId) {
|
|
252
|
+
projectIds.add(link.projectId.toString());
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/*
|
|
256
|
+
* Fail closed. No project to check against and an end on the move
|
|
257
|
+
* is not a safe update to wave through — it is the one shape where
|
|
258
|
+
* a device from anywhere could be attached to this link.
|
|
259
|
+
*/
|
|
260
|
+
if (projectIds.size === 0) {
|
|
261
|
+
throw new BadDataException("Both devices must exist and belong to this project.");
|
|
262
|
+
}
|
|
263
|
+
for (const projectId of projectIds) {
|
|
264
|
+
const devices = await NetworkDeviceService.findBy({
|
|
265
|
+
query: {
|
|
266
|
+
_id: QueryHelper.any(movedEndIds),
|
|
267
|
+
projectId: new ObjectID(projectId),
|
|
268
|
+
},
|
|
269
|
+
select: { _id: true },
|
|
270
|
+
limit: LIMIT_MAX,
|
|
271
|
+
skip: 0,
|
|
272
|
+
props: { isRoot: true },
|
|
273
|
+
});
|
|
274
|
+
/*
|
|
275
|
+
* Compared as a SET of ids rather than as a count. A count says
|
|
276
|
+
* "as many rows came back as I asked about", which a duplicate row
|
|
277
|
+
* satisfies just as well as the right rows do — and this is the
|
|
278
|
+
* check standing between one project's map and another project's
|
|
279
|
+
* device names, so it should be answering the actual question.
|
|
280
|
+
*/
|
|
281
|
+
const foundIds = new Set(devices.map((device) => {
|
|
282
|
+
return (device.id || device._id || "").toString().toLowerCase();
|
|
283
|
+
}));
|
|
284
|
+
const isMissingAnEnd = movedEndIds.some((id) => {
|
|
285
|
+
return !foundIds.has(id.toLowerCase());
|
|
286
|
+
});
|
|
287
|
+
if (isMissingAnEnd) {
|
|
288
|
+
throw new BadDataException("Both devices must exist and belong to this project.");
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
for (const link of existingLinks) {
|
|
293
|
+
const fromDeviceId = writtenFromDeviceId || link.fromDeviceId;
|
|
294
|
+
const toDeviceId = writtenToDeviceId || link.toDeviceId;
|
|
295
|
+
const parentDeviceId = isParentWritten
|
|
296
|
+
? writtenParentDeviceId
|
|
297
|
+
: link.parentDeviceId || null;
|
|
298
|
+
// A row mid-migration with a missing end has no invariant to check.
|
|
299
|
+
if (!fromDeviceId || !toDeviceId) {
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
if (sameDeviceId(fromDeviceId, toDeviceId)) {
|
|
303
|
+
throw new BadDataException("A device cannot be linked to itself.");
|
|
304
|
+
}
|
|
305
|
+
assertParentIsAnEnd(parentDeviceId, fromDeviceId, toDeviceId);
|
|
306
|
+
}
|
|
307
|
+
return { updateBy, carryForward: null };
|
|
308
|
+
}
|
|
63
309
|
}
|
|
64
310
|
__decorate([
|
|
65
311
|
CaptureSpan(),
|
|
@@ -67,5 +313,11 @@ __decorate([
|
|
|
67
313
|
__metadata("design:paramtypes", [Object]),
|
|
68
314
|
__metadata("design:returntype", Promise)
|
|
69
315
|
], Service.prototype, "onBeforeCreate", null);
|
|
316
|
+
__decorate([
|
|
317
|
+
CaptureSpan(),
|
|
318
|
+
__metadata("design:type", Function),
|
|
319
|
+
__metadata("design:paramtypes", [Object]),
|
|
320
|
+
__metadata("design:returntype", Promise)
|
|
321
|
+
], Service.prototype, "onBeforeUpdate", null);
|
|
70
322
|
export default new Service();
|
|
71
323
|
//# sourceMappingURL=NetworkDeviceLinkService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkDeviceLinkService.js","sourceRoot":"","sources":["../../../../Server/Services/NetworkDeviceLinkService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,+CAA+C,CAAC;AAClE,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"NetworkDeviceLinkService.js","sourceRoot":"","sources":["../../../../Server/Services/NetworkDeviceLinkService.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,22 +13,29 @@ import ServerMeteredPlan from "./ServerMeteredPlan";
|
|
|
13
13
|
import TelemetryMeteredPlanType from "./TelemetryMeteredPlan";
|
|
14
14
|
import BadDataException from "../../../../Types/Exception/BadDataException";
|
|
15
15
|
import ProductType from "../../../../Types/MeteredPlan/ProductType";
|
|
16
|
+
import { SESSION_REPLAY_PRICE_IN_USD_PER_GB, TELEMETRY_PRICE_IN_USD_PER_GB, TELEMETRY_PRICE_RETENTION_IN_DAYS, } from "../../../../Types/Billing/PayAsYouGoPricing";
|
|
17
|
+
/*
|
|
18
|
+
* Per GB per day, derived from the advertised per-GB-per-15-days rate so the
|
|
19
|
+
* price the dashboard quotes a Free plan user and the price we actually meter
|
|
20
|
+
* cannot drift apart.
|
|
21
|
+
*/
|
|
22
|
+
const TELEMETRY_UNIT_COST_IN_USD = TELEMETRY_PRICE_IN_USD_PER_GB / TELEMETRY_PRICE_RETENTION_IN_DAYS;
|
|
16
23
|
export const ActiveMonitoringMeteredPlan = new ActiveMonitoringMeteredPlanType();
|
|
17
24
|
export const LogDataIngestMeteredPlan = new TelemetryMeteredPlanType({
|
|
18
25
|
productType: ProductType.Logs,
|
|
19
|
-
unitCostInUSD:
|
|
26
|
+
unitCostInUSD: TELEMETRY_UNIT_COST_IN_USD, // 0.10 per 15 days per GB
|
|
20
27
|
});
|
|
21
28
|
export const MetricsDataIngestMeteredPlan = new TelemetryMeteredPlanType({
|
|
22
29
|
productType: ProductType.Metrics,
|
|
23
|
-
unitCostInUSD:
|
|
30
|
+
unitCostInUSD: TELEMETRY_UNIT_COST_IN_USD, // 0.10 per 15 days per GB
|
|
24
31
|
});
|
|
25
32
|
export const TracesDataIngestMetredPlan = new TelemetryMeteredPlanType({
|
|
26
33
|
productType: ProductType.Traces,
|
|
27
|
-
unitCostInUSD:
|
|
34
|
+
unitCostInUSD: TELEMETRY_UNIT_COST_IN_USD, // 0.10 per 15 days per GB
|
|
28
35
|
});
|
|
29
36
|
export const ProfilesDataIngestMeteredPlan = new TelemetryMeteredPlanType({
|
|
30
37
|
productType: ProductType.Profiles,
|
|
31
|
-
unitCostInUSD:
|
|
38
|
+
unitCostInUSD: TELEMETRY_UNIT_COST_IN_USD, // 0.10 per 15 days per GB
|
|
32
39
|
});
|
|
33
40
|
/*
|
|
34
41
|
* Session replay is priced above the other pillars on purpose.
|
|
@@ -40,7 +47,7 @@ export const ProfilesDataIngestMeteredPlan = new TelemetryMeteredPlanType({
|
|
|
40
47
|
*/
|
|
41
48
|
export const SessionReplayDataIngestMeteredPlan = new TelemetryMeteredPlanType({
|
|
42
49
|
productType: ProductType.SessionReplay,
|
|
43
|
-
unitCostInUSD:
|
|
50
|
+
unitCostInUSD: SESSION_REPLAY_PRICE_IN_USD_PER_GB / TELEMETRY_PRICE_RETENTION_IN_DAYS, // 2.00 per 15 days per GB
|
|
44
51
|
});
|
|
45
52
|
const AllMeteredPlans = [
|
|
46
53
|
ActiveMonitoringMeteredPlan,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllMeteredPlans.js","sourceRoot":"","sources":["../../../../../../Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,+BAA+B,MAAM,+BAA+B,CAAC;AAC5E,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,wBAAwB,MAAM,wBAAwB,CAAC;AAC9D,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,WAAW,MAAM,2CAA2C,CAAC;AAEpE,MAAM,CAAC,MAAM,2BAA2B,GACtC,IAAI,+BAA+B,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,wBAAwB,GACnC,IAAI,wBAAwB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,IAAI;IAC7B,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"AllMeteredPlans.js","sourceRoot":"","sources":["../../../../../../Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,+BAA+B,MAAM,+BAA+B,CAAC;AAC5E,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,wBAAwB,MAAM,wBAAwB,CAAC;AAC9D,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,WAAW,MAAM,2CAA2C,CAAC;AACpE,OAAO,EACL,kCAAkC,EAClC,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,6CAA6C,CAAC;AAErD;;;;GAIG;AACH,MAAM,0BAA0B,GAC9B,6BAA6B,GAAG,iCAAiC,CAAC;AAEpE,MAAM,CAAC,MAAM,2BAA2B,GACtC,IAAI,+BAA+B,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,wBAAwB,GACnC,IAAI,wBAAwB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,IAAI;IAC7B,aAAa,EAAE,0BAA0B,EAAE,0BAA0B;CACtE,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,4BAA4B,GACvC,IAAI,wBAAwB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,OAAO;IAChC,aAAa,EAAE,0BAA0B,EAAE,0BAA0B;CACtE,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,0BAA0B,GACrC,IAAI,wBAAwB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,MAAM;IAC/B,aAAa,EAAE,0BAA0B,EAAE,0BAA0B;CACtE,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,6BAA6B,GACxC,IAAI,wBAAwB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,QAAQ;IACjC,aAAa,EAAE,0BAA0B,EAAE,0BAA0B;CACtE,CAAC,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,IAAI,wBAAwB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC,aAAa;IACtC,aAAa,EACX,kCAAkC,GAAG,iCAAiC,EAAE,0BAA0B;CACrG,CAAC,CAAC;AAEL,MAAM,eAAe,GAA6B;IAChD,2BAA2B;IAC3B,wBAAwB;IACxB,4BAA4B;IAC5B,0BAA0B;IAC1B,6BAA6B;IAC7B,kCAAkC;CACnC,CAAC;AAEF,MAAM,OAAO,eAAe;IAEZ,AAAP,MAAM,CAAC,2BAA2B,CACvC,WAAwB;QAExB,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,WAAW,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,4BAA4B,CAAC;QACtC,CAAC;aAAM,IAAI,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,0BAA0B,CAAC;QACpC,CAAC;aAAM,IAAI,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;YAChD,OAAO,6BAA6B,CAAC;QACvC,CAAC;aAAM,IAAI,WAAW,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACrD,OAAO,kCAAkC,CAAC;QAC5C,CAAC;aAAM,IAAI,WAAW,KAAK,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACxD,OAAO,2BAA2B,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;CACF;AAnBe;IADb,WAAW,EAAE;;;oCAGX,iBAAiB;wDAgBnB;AAGH,eAAe,eAAe,CAAC"}
|
|
@@ -60,6 +60,17 @@ const toScalar = (value) => {
|
|
|
60
60
|
if (value instanceof ObjectID) {
|
|
61
61
|
return value.toString();
|
|
62
62
|
}
|
|
63
|
+
/*
|
|
64
|
+
* A Date only reaches here from a query built server-side: one that arrived
|
|
65
|
+
* over HTTP has already been through JSON, which renders a Date as its ISO
|
|
66
|
+
* string. Both paths must produce the same text, because the ordering
|
|
67
|
+
* comparisons below are lexicographic and only ISO-8601 makes that
|
|
68
|
+
* chronological. The `String(value)` fallback would yield
|
|
69
|
+
* "Sun Aug 17 2026 00:00:00 GMT+0000", which sorts by weekday name.
|
|
70
|
+
*/
|
|
71
|
+
if (value instanceof Date) {
|
|
72
|
+
return value.toISOString();
|
|
73
|
+
}
|
|
63
74
|
if (value === null || value === undefined) {
|
|
64
75
|
return "";
|
|
65
76
|
}
|
|
@@ -174,6 +185,31 @@ class KeyPredicateBuilder {
|
|
|
174
185
|
return `(${accessor.asText} ${operator} CAST(${parameter} AS TEXT))`;
|
|
175
186
|
};
|
|
176
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* An ordering comparison against a value whose type we only learn at runtime.
|
|
190
|
+
*
|
|
191
|
+
* A jsonb key holds whatever the project put there, so `>` has two readings.
|
|
192
|
+
* Numbers compare numerically — "10" must be greater than "9", which text
|
|
193
|
+
* comparison gets backwards. Everything else compares as text, and the case
|
|
194
|
+
* that matters is a date: custom field dates are stored as ISO-8601 strings,
|
|
195
|
+
* and ISO-8601 is designed so that lexicographic order IS chronological
|
|
196
|
+
* order, so `>=` over the raw text is already the right question.
|
|
197
|
+
*
|
|
198
|
+
* Routing dates through compareNumeric — which is what these operators used
|
|
199
|
+
* to do unconditionally — was silently wrong rather than loudly wrong.
|
|
200
|
+
* `Number("2026-08-17T00:00:00.000Z")` is NaN, so the bound parameter became
|
|
201
|
+
* `CAST(NaN AS NUMERIC)`, and `numericExpression` independently returns NULL
|
|
202
|
+
* for text that does not look like a number. The predicate was therefore
|
|
203
|
+
* `NULL > NaN` on every row: no error, no rows, and a lit filter chip over an
|
|
204
|
+
* empty table.
|
|
205
|
+
*
|
|
206
|
+
* InBetween has always branched this way; these four now agree with it.
|
|
207
|
+
*/
|
|
208
|
+
compareOrdered(operator, value) {
|
|
209
|
+
return isNumericValue(toScalar(value))
|
|
210
|
+
? this.compareNumeric(operator, value)
|
|
211
|
+
: this.compareText(operator, value);
|
|
212
|
+
}
|
|
177
213
|
/**
|
|
178
214
|
* "No value here" — the key is absent, explicitly JSON null, an empty
|
|
179
215
|
* string, or an empty array. A multi-select cleared in the UI leaves `[]`
|
|
@@ -282,16 +318,16 @@ class KeyPredicateBuilder {
|
|
|
282
318
|
return this.join([this.compareNumeric("<=", value.value), this.isEmpty()], "OR");
|
|
283
319
|
}
|
|
284
320
|
if (value instanceof GreaterThanOrEqual) {
|
|
285
|
-
return this.
|
|
321
|
+
return this.compareOrdered(">=", value.value);
|
|
286
322
|
}
|
|
287
323
|
if (value instanceof GreaterThan) {
|
|
288
|
-
return this.
|
|
324
|
+
return this.compareOrdered(">", value.value);
|
|
289
325
|
}
|
|
290
326
|
if (value instanceof LessThanOrEqual) {
|
|
291
|
-
return this.
|
|
327
|
+
return this.compareOrdered("<=", value.value);
|
|
292
328
|
}
|
|
293
329
|
if (value instanceof LessThan) {
|
|
294
|
-
return this.
|
|
330
|
+
return this.compareOrdered("<", value.value);
|
|
295
331
|
}
|
|
296
332
|
/*
|
|
297
333
|
* A bare array reads as "is any of" — the same meaning QueryUtil gives a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONColumnQuery.js","sourceRoot":"","sources":["../../../../../Server/Types/Database/JSONColumnQuery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JSONColumnQuery.js","sourceRoot":"","sources":["../../../../../Server/Types/Database/JSONColumnQuery.ts"],"names":[],"mappings":"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"}
|