@oneuptime/common 10.4.3 → 10.4.5

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.
@@ -0,0 +1,66 @@
1
+ import Includes from "../../Types/BaseDatabase/Includes";
2
+ import { DashboardVariableType, } from "../../Types/Dashboard/DashboardVariable";
3
+ import DashboardVariableInterpolation from "./VariableInterpolation";
4
+ /*
5
+ * Applies dashboard variables to a Postgres model query at render time.
6
+ *
7
+ * Companion to `DashboardVariableInterpolation`, which targets OTel
8
+ * attribute filters used by metric/log widgets. Resource list widgets
9
+ * (Host, Kubernetes resources, Docker resources) query the model store
10
+ * by column instead, so this helper translates the variable's bound
11
+ * OTel attribute key into the matching column name before writing the
12
+ * predicate. An empty/unset selection removes any prior filter on that
13
+ * column so the list falls back to its widget-default view.
14
+ */
15
+ export default class DashboardModelQueryInterpolation {
16
+ static applyToQuery(query, variables, attributeToColumn) {
17
+ if (!variables || variables.length === 0) {
18
+ return query;
19
+ }
20
+ const mappedAttributeKeys = Object.keys(attributeToColumn);
21
+ if (mappedAttributeKeys.length === 0) {
22
+ return query;
23
+ }
24
+ const relevantVariables = variables.filter((v) => {
25
+ return (v.type === DashboardVariableType.TelemetryAttribute &&
26
+ Boolean(v.attributeKey) &&
27
+ mappedAttributeKeys.includes(v.attributeKey));
28
+ });
29
+ if (relevantVariables.length === 0) {
30
+ return query;
31
+ }
32
+ let next = query;
33
+ let changed = false;
34
+ for (const variable of relevantVariables) {
35
+ const column = attributeToColumn[variable.attributeKey];
36
+ const resolved = DashboardVariableInterpolation.resolveValue(variable);
37
+ if (!resolved) {
38
+ if (column in next) {
39
+ if (!changed) {
40
+ next = Object.assign({}, query);
41
+ changed = true;
42
+ }
43
+ delete next[column];
44
+ }
45
+ continue;
46
+ }
47
+ if (resolved.multi && resolved.multi.length > 0) {
48
+ if (!changed) {
49
+ next = Object.assign({}, query);
50
+ changed = true;
51
+ }
52
+ next[column] = new Includes(resolved.multi);
53
+ continue;
54
+ }
55
+ if (resolved.scalar !== undefined && next[column] !== resolved.scalar) {
56
+ if (!changed) {
57
+ next = Object.assign({}, query);
58
+ changed = true;
59
+ }
60
+ next[column] = resolved.scalar;
61
+ }
62
+ }
63
+ return changed ? next : query;
64
+ }
65
+ }
66
+ //# sourceMappingURL=ModelQueryVariableInterpolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelQueryVariableInterpolation.js","sourceRoot":"","sources":["../../../../Utils/Dashboard/ModelQueryVariableInterpolation.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mCAAmC,CAAC;AACzD,OAA0B,EACxB,qBAAqB,GACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,8BAEN,MAAM,yBAAyB,CAAC;AAUjC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,gCAAgC;IAC5C,MAAM,CAAC,YAAY,CACxB,KAA8B,EAC9B,SAA+C,EAC/C,iBAAuC;QAEvC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,mBAAmB,GAAkB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,iBAAiB,GAA6B,SAAS,CAAC,MAAM,CAClE,CAAC,CAAoB,EAAE,EAAE;YACvB,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,kBAAkB;gBACnD,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;gBACvB,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAsB,CAAC,CACvD,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAA4B,KAAK,CAAC;QAC1C,IAAI,OAAO,GAAY,KAAK,CAAC;QAE7B,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAW,iBAAiB,CACtC,QAAQ,CAAC,YAAsB,CACtB,CAAC;YACZ,MAAM,QAAQ,GACZ,8BAA8B,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,IAAI,qBAAQ,KAAK,CAAE,CAAC;wBACpB,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;oBACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,qBAAQ,KAAK,CAAE,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtE,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,qBAAQ,KAAK,CAAE,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "10.4.3",
3
+ "version": "10.4.5",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",