@oneuptime/common 10.0.86 → 10.0.88

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.
Files changed (90) hide show
  1. package/Models/DatabaseModels/EnterpriseLicense.ts +54 -0
  2. package/Models/DatabaseModels/GlobalConfig.ts +51 -0
  3. package/Server/API/EnterpriseLicenseAPI.ts +83 -0
  4. package/Server/API/GlobalConfigAPI.ts +59 -0
  5. package/Server/API/TelemetryAPI.ts +24 -0
  6. package/Server/EnvironmentConfig.ts +10 -0
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/1777629313843-MigrationName.ts +59 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  9. package/Server/Infrastructure/Queue.ts +4 -4
  10. package/Server/Services/TelemetryAttributeService.ts +37 -3
  11. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +174 -7
  12. package/Tests/Types/Date.test.ts +46 -0
  13. package/Types/Date.ts +9 -4
  14. package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +60 -21
  15. package/UI/Components/Dictionary/Dictionary.tsx +188 -26
  16. package/UI/Components/Dictionary/DictionaryFilterOperator.ts +357 -0
  17. package/UI/Components/Dictionary/DictionaryOfStrings.tsx +12 -7
  18. package/UI/Components/EditionLabel/EditionLabel.tsx +224 -10
  19. package/UI/Components/Filters/FilterViewer.tsx +81 -16
  20. package/UI/Components/Filters/FiltersForm.tsx +18 -3
  21. package/UI/Components/Filters/JSONFilter.tsx +11 -2
  22. package/UI/Components/Filters/Types/Filter.ts +3 -0
  23. package/UI/Components/Forms/Fields/FormField.tsx +6 -1
  24. package/UI/Components/Forms/Types/Field.ts +5 -0
  25. package/UI/Components/LogsViewer/LogsViewer.tsx +73 -4
  26. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +77 -31
  27. package/UI/Components/LogsViewer/components/LogSearchSuggestions.tsx +44 -1
  28. package/UI/Components/LogsViewer/components/LogsFilterCard.tsx +7 -5
  29. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +6 -0
  30. package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +84 -25
  31. package/UI/Components/TelemetryViewer/components/TelemetrySearchSuggestions.tsx +44 -1
  32. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +57 -0
  33. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
  34. package/build/dist/Models/DatabaseModels/GlobalConfig.js +54 -0
  35. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  36. package/build/dist/Server/API/EnterpriseLicenseAPI.js +64 -1
  37. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  38. package/build/dist/Server/API/GlobalConfigAPI.js +47 -0
  39. package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
  40. package/build/dist/Server/API/TelemetryAPI.js +9 -0
  41. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  42. package/build/dist/Server/EnvironmentConfig.js +3 -0
  43. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  44. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777629313843-MigrationName.js +26 -0
  45. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777629313843-MigrationName.js.map +1 -0
  46. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  47. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  48. package/build/dist/Server/Infrastructure/Queue.js +3 -3
  49. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  50. package/build/dist/Server/Services/TelemetryAttributeService.js +36 -7
  51. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  52. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +135 -5
  53. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  54. package/build/dist/Tests/Types/Date.test.js +40 -0
  55. package/build/dist/Tests/Types/Date.test.js.map +1 -1
  56. package/build/dist/Types/Date.js +7 -2
  57. package/build/dist/Types/Date.js.map +1 -1
  58. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +21 -10
  59. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
  60. package/build/dist/UI/Components/Dictionary/Dictionary.js +109 -16
  61. package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
  62. package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js +263 -0
  63. package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js.map +1 -0
  64. package/build/dist/UI/Components/Dictionary/DictionaryOfStrings.js +10 -6
  65. package/build/dist/UI/Components/Dictionary/DictionaryOfStrings.js.map +1 -1
  66. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +124 -6
  67. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  68. package/build/dist/UI/Components/Filters/FilterViewer.js +50 -12
  69. package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
  70. package/build/dist/UI/Components/Filters/FiltersForm.js +5 -4
  71. package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
  72. package/build/dist/UI/Components/Filters/JSONFilter.js +1 -1
  73. package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
  74. package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
  75. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  76. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +54 -5
  77. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  78. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +59 -29
  79. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  80. package/build/dist/UI/Components/LogsViewer/components/LogSearchSuggestions.js +10 -2
  81. package/build/dist/UI/Components/LogsViewer/components/LogSearchSuggestions.js.map +1 -1
  82. package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js +2 -5
  83. package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js.map +1 -1
  84. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +1 -1
  85. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  86. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +59 -22
  87. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
  88. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchSuggestions.js +10 -2
  89. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchSuggestions.js.map +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1,263 @@
1
+ import EqualTo from "../../../Types/BaseDatabase/EqualTo";
2
+ import NotEqual from "../../../Types/BaseDatabase/NotEqual";
3
+ import Search from "../../../Types/BaseDatabase/Search";
4
+ import NotContains from "../../../Types/BaseDatabase/NotContains";
5
+ import StartsWith from "../../../Types/BaseDatabase/StartsWith";
6
+ import EndsWith from "../../../Types/BaseDatabase/EndsWith";
7
+ import GreaterThan from "../../../Types/BaseDatabase/GreaterThan";
8
+ import GreaterThanOrEqual from "../../../Types/BaseDatabase/GreaterThanOrEqual";
9
+ import LessThan from "../../../Types/BaseDatabase/LessThan";
10
+ import LessThanOrEqual from "../../../Types/BaseDatabase/LessThanOrEqual";
11
+ import IsNull from "../../../Types/BaseDatabase/IsNull";
12
+ import NotNull from "../../../Types/BaseDatabase/NotNull";
13
+ import { ObjectType } from "../../../Types/JSON";
14
+ /*
15
+ * UI-facing operator identifiers. We store these in the Dictionary form
16
+ * state and translate to the corresponding backend operator wrapper at
17
+ * the API boundary so the existing serialization pipeline works.
18
+ */
19
+ export var DictionaryFilterOperator;
20
+ (function (DictionaryFilterOperator) {
21
+ DictionaryFilterOperator["EqualTo"] = "EqualTo";
22
+ DictionaryFilterOperator["NotEqual"] = "NotEqual";
23
+ DictionaryFilterOperator["Contains"] = "Contains";
24
+ DictionaryFilterOperator["NotContains"] = "NotContains";
25
+ DictionaryFilterOperator["StartsWith"] = "StartsWith";
26
+ DictionaryFilterOperator["EndsWith"] = "EndsWith";
27
+ DictionaryFilterOperator["GreaterThan"] = "GreaterThan";
28
+ DictionaryFilterOperator["LessThan"] = "LessThan";
29
+ DictionaryFilterOperator["GreaterThanOrEqual"] = "GreaterThanOrEqual";
30
+ DictionaryFilterOperator["LessThanOrEqual"] = "LessThanOrEqual";
31
+ DictionaryFilterOperator["IsEmpty"] = "IsEmpty";
32
+ DictionaryFilterOperator["IsNotEmpty"] = "IsNotEmpty";
33
+ })(DictionaryFilterOperator || (DictionaryFilterOperator = {}));
34
+ export const DICTIONARY_FILTER_OPERATOR_OPTIONS = [
35
+ {
36
+ operator: DictionaryFilterOperator.EqualTo,
37
+ label: "equals",
38
+ symbol: "=",
39
+ },
40
+ {
41
+ operator: DictionaryFilterOperator.NotEqual,
42
+ label: "does not equal",
43
+ symbol: "!=",
44
+ },
45
+ {
46
+ operator: DictionaryFilterOperator.Contains,
47
+ label: "contains",
48
+ symbol: "contains",
49
+ },
50
+ {
51
+ operator: DictionaryFilterOperator.NotContains,
52
+ label: "does not contain",
53
+ symbol: "does not contain",
54
+ },
55
+ {
56
+ operator: DictionaryFilterOperator.StartsWith,
57
+ label: "starts with",
58
+ symbol: "starts with",
59
+ },
60
+ {
61
+ operator: DictionaryFilterOperator.EndsWith,
62
+ label: "ends with",
63
+ symbol: "ends with",
64
+ },
65
+ {
66
+ operator: DictionaryFilterOperator.GreaterThan,
67
+ label: "greater than",
68
+ symbol: ">",
69
+ expectsNumericValue: true,
70
+ },
71
+ {
72
+ operator: DictionaryFilterOperator.GreaterThanOrEqual,
73
+ label: "greater than or equal",
74
+ symbol: ">=",
75
+ expectsNumericValue: true,
76
+ },
77
+ {
78
+ operator: DictionaryFilterOperator.LessThan,
79
+ label: "less than",
80
+ symbol: "<",
81
+ expectsNumericValue: true,
82
+ },
83
+ {
84
+ operator: DictionaryFilterOperator.LessThanOrEqual,
85
+ label: "less than or equal",
86
+ symbol: "<=",
87
+ expectsNumericValue: true,
88
+ },
89
+ {
90
+ operator: DictionaryFilterOperator.IsEmpty,
91
+ label: "is empty",
92
+ symbol: "is empty",
93
+ hidesValueInput: true,
94
+ },
95
+ {
96
+ operator: DictionaryFilterOperator.IsNotEmpty,
97
+ label: "is not empty",
98
+ symbol: "is not empty",
99
+ hidesValueInput: true,
100
+ },
101
+ ];
102
+ export const getOperatorOption = (operator) => {
103
+ var _a;
104
+ return ((_a = DICTIONARY_FILTER_OPERATOR_OPTIONS.find((option) => {
105
+ return option.operator === operator;
106
+ })) !== null && _a !== void 0 ? _a : DICTIONARY_FILTER_OPERATOR_OPTIONS[0]);
107
+ };
108
+ const matchesObjectType = (value, type) => {
109
+ return Boolean(value &&
110
+ typeof value === "object" &&
111
+ value._type === type);
112
+ };
113
+ /**
114
+ * Inspect a stored dictionary entry value (which may be a plain string,
115
+ * a hydrated operator instance, or a raw `{_type, value}` JSON shape)
116
+ * and recover the operator + display value used to populate the form.
117
+ */
118
+ export const detectOperatorFromValue = (value) => {
119
+ if (value === null || value === undefined) {
120
+ return {
121
+ operator: DictionaryFilterOperator.EqualTo,
122
+ rawValue: "",
123
+ };
124
+ }
125
+ if (typeof value === "string" ||
126
+ typeof value === "number" ||
127
+ typeof value === "boolean") {
128
+ return {
129
+ operator: DictionaryFilterOperator.EqualTo,
130
+ rawValue: String(value),
131
+ };
132
+ }
133
+ if (value instanceof IsNull || matchesObjectType(value, ObjectType.IsNull)) {
134
+ return { operator: DictionaryFilterOperator.IsEmpty, rawValue: "" };
135
+ }
136
+ if (value instanceof NotNull ||
137
+ matchesObjectType(value, ObjectType.NotNull)) {
138
+ return { operator: DictionaryFilterOperator.IsNotEmpty, rawValue: "" };
139
+ }
140
+ const wrapperValue = value instanceof Object && "value" in value
141
+ ? String(value.value === undefined ||
142
+ value.value === null
143
+ ? ""
144
+ : value.value)
145
+ : "";
146
+ if (value instanceof NotEqual ||
147
+ matchesObjectType(value, ObjectType.NotEqual)) {
148
+ return {
149
+ operator: DictionaryFilterOperator.NotEqual,
150
+ rawValue: wrapperValue,
151
+ };
152
+ }
153
+ if (value instanceof EqualTo ||
154
+ matchesObjectType(value, ObjectType.EqualTo)) {
155
+ return {
156
+ operator: DictionaryFilterOperator.EqualTo,
157
+ rawValue: wrapperValue,
158
+ };
159
+ }
160
+ if (value instanceof Search || matchesObjectType(value, ObjectType.Search)) {
161
+ return {
162
+ operator: DictionaryFilterOperator.Contains,
163
+ rawValue: wrapperValue,
164
+ };
165
+ }
166
+ if (value instanceof NotContains ||
167
+ matchesObjectType(value, ObjectType.NotContains)) {
168
+ return {
169
+ operator: DictionaryFilterOperator.NotContains,
170
+ rawValue: wrapperValue,
171
+ };
172
+ }
173
+ if (value instanceof StartsWith ||
174
+ matchesObjectType(value, ObjectType.StartsWith)) {
175
+ return {
176
+ operator: DictionaryFilterOperator.StartsWith,
177
+ rawValue: wrapperValue,
178
+ };
179
+ }
180
+ if (value instanceof EndsWith ||
181
+ matchesObjectType(value, ObjectType.EndsWith)) {
182
+ return {
183
+ operator: DictionaryFilterOperator.EndsWith,
184
+ rawValue: wrapperValue,
185
+ };
186
+ }
187
+ if (value instanceof GreaterThan ||
188
+ matchesObjectType(value, ObjectType.GreaterThan)) {
189
+ return {
190
+ operator: DictionaryFilterOperator.GreaterThan,
191
+ rawValue: wrapperValue,
192
+ };
193
+ }
194
+ if (value instanceof GreaterThanOrEqual ||
195
+ matchesObjectType(value, ObjectType.GreaterThanOrEqual)) {
196
+ return {
197
+ operator: DictionaryFilterOperator.GreaterThanOrEqual,
198
+ rawValue: wrapperValue,
199
+ };
200
+ }
201
+ if (value instanceof LessThan ||
202
+ matchesObjectType(value, ObjectType.LessThan)) {
203
+ return {
204
+ operator: DictionaryFilterOperator.LessThan,
205
+ rawValue: wrapperValue,
206
+ };
207
+ }
208
+ if (value instanceof LessThanOrEqual ||
209
+ matchesObjectType(value, ObjectType.LessThanOrEqual)) {
210
+ return {
211
+ operator: DictionaryFilterOperator.LessThanOrEqual,
212
+ rawValue: wrapperValue,
213
+ };
214
+ }
215
+ // Unknown structure — fall back to bare equality with stringified value.
216
+ return {
217
+ operator: DictionaryFilterOperator.EqualTo,
218
+ rawValue: wrapperValue,
219
+ };
220
+ };
221
+ /**
222
+ * Build the actual stored dictionary value for an operator + raw value.
223
+ * `EqualTo` produces a bare string for backwards compatibility with
224
+ * existing saved filters; everything else produces an operator wrapper
225
+ * instance.
226
+ */
227
+ export const buildDictionaryValue = (input) => {
228
+ const { operator, rawValue } = input;
229
+ const trimmed = rawValue !== null && rawValue !== void 0 ? rawValue : "";
230
+ switch (operator) {
231
+ case DictionaryFilterOperator.EqualTo:
232
+ return trimmed;
233
+ case DictionaryFilterOperator.NotEqual:
234
+ return new NotEqual(trimmed);
235
+ case DictionaryFilterOperator.Contains:
236
+ /*
237
+ * Statement.serialize already wraps Search instances with `%...%`,
238
+ * so pass the bare needle here.
239
+ */
240
+ return new Search(trimmed);
241
+ case DictionaryFilterOperator.NotContains:
242
+ return new NotContains(trimmed);
243
+ case DictionaryFilterOperator.StartsWith:
244
+ return new StartsWith(trimmed);
245
+ case DictionaryFilterOperator.EndsWith:
246
+ return new EndsWith(trimmed);
247
+ case DictionaryFilterOperator.GreaterThan:
248
+ return new GreaterThan(Number(trimmed));
249
+ case DictionaryFilterOperator.GreaterThanOrEqual:
250
+ return new GreaterThanOrEqual(Number(trimmed));
251
+ case DictionaryFilterOperator.LessThan:
252
+ return new LessThan(Number(trimmed));
253
+ case DictionaryFilterOperator.LessThanOrEqual:
254
+ return new LessThanOrEqual(Number(trimmed));
255
+ case DictionaryFilterOperator.IsEmpty:
256
+ return new IsNull();
257
+ case DictionaryFilterOperator.IsNotEmpty:
258
+ return new NotNull();
259
+ default:
260
+ return trimmed;
261
+ }
262
+ };
263
+ //# sourceMappingURL=DictionaryFilterOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DictionaryFilterOperator.js","sourceRoot":"","sources":["../../../../../UI/Components/Dictionary/DictionaryFilterOperator.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,17 @@ const DictionaryOfStrings = (props) => {
4
4
  return (
5
5
  // only allow text values
6
6
  React.createElement(DictionaryForm, Object.assign({}, props, { valueTypes: [ValueType.Text], onChange: (value) => {
7
- var _a;
8
- const stringDict = value;
9
- // convert all values to strings
10
- for (const key in stringDict) {
11
- if (stringDict[key]) {
12
- stringDict[key] = ((_a = stringDict[key]) === null || _a === void 0 ? void 0 : _a.toString()) || "";
7
+ /*
8
+ * Operators are not enabled here, so values come back as bare
9
+ * strings/numbers/booleans only.
10
+ */
11
+ const stringDict = {};
12
+ for (const key of Object.keys(value)) {
13
+ const entry = value[key];
14
+ if (entry === undefined || entry === null) {
15
+ continue;
13
16
  }
17
+ stringDict[key] = entry.toString();
14
18
  }
15
19
  if (props.onChange) {
16
20
  props.onChange(stringDict);
@@ -1 +1 @@
1
- {"version":3,"file":"DictionaryOfStrings.js","sourceRoot":"","sources":["../../../../../UI/Components/Dictionary/DictionaryOfStrings.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAA0C,MAAM,OAAO,CAAC;AAU/D,MAAM,mBAAmB,GAAsC,CAC7D,KAAqB,EACP,EAAE;IAChB,OAAO;IACL,yBAAyB;IACzB,oBAAC,cAAc,oBACT,KAAK,IACT,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC5B,QAAQ,EAAE,CAAC,KAA4C,EAAE,EAAE;;YACzD,MAAM,UAAU,GAAuB,KAA2B,CAAC;YAEnE,gCAAgC;YAEhC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAA,MAAA,UAAU,CAAC,GAAG,CAAC,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,IACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"DictionaryOfStrings.js","sourceRoot":"","sources":["../../../../../UI/Components/Dictionary/DictionaryOfStrings.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,KAA0C,MAAM,OAAO,CAAC;AAU/D,MAAM,mBAAmB,GAAsC,CAC7D,KAAqB,EACP,EAAE;IAChB,OAAO;IACL,yBAAyB;IACzB,oBAAC,cAAc,oBACT,KAAK,IACT,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC5B,QAAQ,EAAE,CAAC,KAAuC,EAAE,EAAE;YACpD;;;eAGG;YACH,MAAM,UAAU,GAAuB,EAAE,CAAC;YAE1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAqC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,IACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -55,6 +55,16 @@ const EditionLabel = (props) => {
55
55
  if (payload["expiresAt"]) {
56
56
  configModel.enterpriseLicenseExpiresAt = OneUptimeDate.fromString(payload["expiresAt"]);
57
57
  }
58
+ if (typeof payload["userLimit"] === "number") {
59
+ configModel.enterpriseLicenseUserLimit = payload["userLimit"];
60
+ }
61
+ if (typeof payload["currentUserCount"] === "number") {
62
+ configModel.enterpriseLicenseCurrentUserCount = payload["currentUserCount"];
63
+ }
64
+ if (payload["userCountUpdatedAt"]) {
65
+ configModel.enterpriseLicenseUserCountUpdatedAt =
66
+ OneUptimeDate.fromString(payload["userCountUpdatedAt"]);
67
+ }
58
68
  setGlobalConfig(configModel);
59
69
  if (!licenseInputEditedRef.current) {
60
70
  setLicenseKeyInput(configModel.enterpriseLicenseKey || "");
@@ -95,6 +105,47 @@ const EditionLabel = (props) => {
95
105
  }
96
106
  return expiresAt.toLocaleString();
97
107
  }, [globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseExpiresAt]);
108
+ const userLimit = useMemo(() => {
109
+ return typeof (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseUserLimit) === "number"
110
+ ? globalConfig.enterpriseLicenseUserLimit
111
+ : null;
112
+ }, [globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseUserLimit]);
113
+ const currentUserCount = useMemo(() => {
114
+ return typeof (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseCurrentUserCount) === "number"
115
+ ? globalConfig.enterpriseLicenseCurrentUserCount
116
+ : null;
117
+ }, [globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseCurrentUserCount]);
118
+ const userCountUpdatedAtText = useMemo(() => {
119
+ if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseUserCountUpdatedAt)) {
120
+ return null;
121
+ }
122
+ const reportedAt = OneUptimeDate.fromString(globalConfig.enterpriseLicenseUserCountUpdatedAt);
123
+ if (Number.isNaN(reportedAt.getTime())) {
124
+ return null;
125
+ }
126
+ return reportedAt.toLocaleString();
127
+ }, [globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseUserCountUpdatedAt]);
128
+ const isUserLimitBreached = useMemo(() => {
129
+ if (!licenseValid) {
130
+ return false;
131
+ }
132
+ if (typeof userLimit !== "number" || userLimit <= 0) {
133
+ return false;
134
+ }
135
+ if (typeof currentUserCount !== "number") {
136
+ return false;
137
+ }
138
+ return currentUserCount > userLimit;
139
+ }, [licenseValid, userLimit, currentUserCount]);
140
+ const userUsagePercent = useMemo(() => {
141
+ if (typeof userLimit !== "number" || userLimit <= 0) {
142
+ return null;
143
+ }
144
+ if (typeof currentUserCount !== "number") {
145
+ return null;
146
+ }
147
+ return Math.min(100, Math.max(0, Math.round((currentUserCount / userLimit) * 100)));
148
+ }, [userLimit, currentUserCount]);
98
149
  const editionName = useMemo(() => {
99
150
  if (!IS_ENTERPRISE_EDITION) {
100
151
  return "Community Edition";
@@ -113,8 +164,14 @@ const EditionLabel = (props) => {
113
164
  if (isConfigLoading) {
114
165
  return "bg-yellow-400";
115
166
  }
116
- return licenseValid ? "bg-emerald-500" : "bg-red-500";
117
- }, [isConfigLoading, licenseValid]);
167
+ if (!licenseValid) {
168
+ return "bg-red-500";
169
+ }
170
+ if (isUserLimitBreached) {
171
+ return "bg-red-500";
172
+ }
173
+ return "bg-emerald-500";
174
+ }, [isConfigLoading, licenseValid, isUserLimitBreached]);
118
175
  const ctaLabel = useMemo(() => {
119
176
  if (!IS_ENTERPRISE_EDITION) {
120
177
  return "Learn more";
@@ -122,8 +179,14 @@ const EditionLabel = (props) => {
122
179
  if (isConfigLoading) {
123
180
  return "Checking";
124
181
  }
125
- return licenseValid ? "View details" : "Validate license";
126
- }, [isConfigLoading, licenseValid]);
182
+ if (!licenseValid) {
183
+ return "Validate license";
184
+ }
185
+ if (isUserLimitBreached) {
186
+ return "User limit exceeded";
187
+ }
188
+ return "View details";
189
+ }, [isConfigLoading, licenseValid, isUserLimitBreached]);
127
190
  const communityFeatures = useMemo(() => {
128
191
  return [
129
192
  "Full OneUptime platform with incident response, status pages, and workflow automation.",
@@ -227,11 +290,22 @@ const EditionLabel = (props) => {
227
290
  ? !licenseKeyInput.trim() || isValidating || isConfigLoading
228
291
  : undefined
229
292
  : false;
293
+ const showAlertedPill = IS_ENTERPRISE_EDITION &&
294
+ !isConfigLoading &&
295
+ (isUserLimitBreached ||
296
+ (!licenseValid && Boolean(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enterpriseLicenseKey)));
297
+ const pillClassName = showAlertedPill
298
+ ? "group inline-flex items-center gap-2 rounded-full border border-red-200 bg-red-50 px-3 py-1 text-xs font-medium text-red-700 shadow-sm transition hover:border-red-300 hover:bg-red-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-400"
299
+ : "group inline-flex items-center gap-2 rounded-full border border-indigo-100 bg-white px-3 py-1 text-xs font-medium text-indigo-700 shadow-sm transition hover:border-indigo-300 hover:bg-indigo-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-400";
300
+ const pillCtaTextClassName = showAlertedPill
301
+ ? "text-[11px] text-red-500 group-hover:text-red-600"
302
+ : "text-[11px] text-indigo-500 group-hover:text-indigo-600";
230
303
  return (React.createElement(React.Fragment, null,
231
- React.createElement("button", { type: "button", onClick: openDialog, className: `group inline-flex items-center gap-2 rounded-full border border-indigo-100 bg-white px-3 py-1 text-xs font-medium text-indigo-700 shadow-sm transition hover:border-indigo-300 hover:bg-indigo-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-400 ${props.className ? props.className : ""}`, "aria-label": `${editionName} details` },
304
+ React.createElement("button", { type: "button", onClick: openDialog, className: `${pillClassName} ${props.className ? props.className : ""}`, "aria-label": `${editionName} details` },
305
+ showAlertedPill && (React.createElement(Icon, { icon: IconProp.Alert, size: SizeProp.Small, className: "text-red-600" })),
232
306
  React.createElement("span", { className: `h-2 w-2 rounded-full transition group-hover:scale-110 ${indicatorColor}` }),
233
307
  React.createElement("span", { className: "tracking-wide" }, editionName),
234
- React.createElement("span", { className: "text-[11px] text-indigo-500 group-hover:text-indigo-600" }, ctaLabel)),
308
+ React.createElement("span", { className: pillCtaTextClassName }, ctaLabel)),
235
309
  isDialogOpen && (React.createElement(Modal, { title: editionName, submitButtonText: modalSubmitButtonText, closeButtonText: "Close", onClose: closeDialog, onSubmit: modalOnSubmit, modalWidth: ModalWidth.Large, isLoading: modalIsLoading, disableSubmitButton: modalDisableSubmitButton, isBodyLoading: IS_ENTERPRISE_EDITION ? isConfigLoading : false },
236
310
  React.createElement("div", { className: "space-y-3 text-sm text-gray-600" }, IS_ENTERPRISE_EDITION ? (React.createElement(React.Fragment, null,
237
311
  configError && (React.createElement("div", { className: "rounded-md border border-red-200 bg-red-50 p-3 text-sm text-red-700" },
@@ -249,6 +323,50 @@ const EditionLabel = (props) => {
249
323
  React.createElement("span", { className: "font-medium" }, "Expires:"),
250
324
  " ",
251
325
  licenseExpiresAtText)))),
326
+ !configError && !isConfigLoading && licenseValid && (React.createElement("div", { className: `rounded-lg border p-4 shadow-sm ${isUserLimitBreached
327
+ ? "border-red-200 bg-red-50"
328
+ : "border-gray-200 bg-white"}` },
329
+ React.createElement("div", { className: "flex items-start gap-3" },
330
+ React.createElement("div", { className: `flex h-9 w-9 items-center justify-center rounded-full ${isUserLimitBreached
331
+ ? "bg-red-100 text-red-600"
332
+ : "bg-indigo-100 text-indigo-600"}` },
333
+ React.createElement(Icon, { icon: isUserLimitBreached ? IconProp.Alert : IconProp.User, size: SizeProp.Regular })),
334
+ React.createElement("div", { className: "flex-1" },
335
+ React.createElement("div", { className: "flex items-center justify-between" },
336
+ React.createElement("h3", { className: `text-sm font-semibold ${isUserLimitBreached
337
+ ? "text-red-900"
338
+ : "text-gray-900"}` }, "User Usage"),
339
+ isUserLimitBreached && (React.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-red-100 px-2 py-0.5 text-xs font-medium text-red-700" }, "Limit exceeded"))),
340
+ React.createElement("div", { className: "mt-2 flex items-baseline gap-1" },
341
+ React.createElement("span", { className: `text-2xl font-semibold ${isUserLimitBreached
342
+ ? "text-red-700"
343
+ : "text-gray-900"}` }, typeof currentUserCount === "number"
344
+ ? currentUserCount.toLocaleString()
345
+ : "—"),
346
+ React.createElement("span", { className: "text-sm text-gray-500" },
347
+ " / ",
348
+ typeof userLimit === "number" && userLimit > 0
349
+ ? `${userLimit.toLocaleString()} users`
350
+ : "unlimited")),
351
+ typeof userUsagePercent === "number" && (React.createElement("div", { className: "mt-3" },
352
+ React.createElement("div", { className: "h-2 w-full overflow-hidden rounded-full bg-gray-200" },
353
+ React.createElement("div", { className: `h-full rounded-full transition-all ${isUserLimitBreached
354
+ ? "bg-red-500"
355
+ : userUsagePercent >= 80
356
+ ? "bg-amber-500"
357
+ : "bg-emerald-500"}`, style: { width: `${userUsagePercent}%` } })),
358
+ React.createElement("p", { className: "mt-1 text-xs text-gray-500" },
359
+ userUsagePercent,
360
+ "% of licensed seats in use"))),
361
+ isUserLimitBreached && (React.createElement("p", { className: "mt-3 text-xs text-red-700" },
362
+ "Your installation has more users than your license permits. Please contact",
363
+ " ",
364
+ React.createElement("a", { href: "mailto:sales@oneuptime.com", className: "font-medium text-red-800 underline hover:text-red-900" }, "sales@oneuptime.com"),
365
+ " ",
366
+ "to expand your license.")),
367
+ React.createElement("p", { className: "mt-3 text-xs text-gray-500" }, userCountUpdatedAtText
368
+ ? `Last reported to OneUptime on ${userCountUpdatedAtText}.`
369
+ : "User count has not been reported to OneUptime yet. The first report will be sent within 24 hours."))))),
252
370
  !configError &&
253
371
  !isConfigLoading &&
254
372
  !licenseValid &&
@@ -1 +1 @@
1
- {"version":3,"file":"EditionLabel.js","sourceRoot":"","sources":["../../../../../UI/Components/EditionLabel/EditionLabel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditionLabel.js","sourceRoot":"","sources":["../../../../../UI/Components/EditionLabel/EditionLabel.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { detectOperatorFromValue, getOperatorOption, } from "../Dictionary/DictionaryFilterOperator";
1
2
  import Icon, { SizeProp } from "../Icon/Icon";
2
3
  import Includes from "../../../Types/BaseDatabase/Includes";
3
4
  import IncludesAll from "../../../Types/BaseDatabase/IncludesAll";
@@ -37,19 +38,40 @@ const FilterComponent = (props) => {
37
38
  }
38
39
  }, [props.showFilterModal]);
39
40
  const formatJson = (json) => {
40
- return (React.createElement("div", { className: "flex space-x-2 -mt-1" }, Object.keys(json).map((key, i) => {
41
- let jsonText = json[key];
42
- if (typeof jsonText === "boolean" && jsonText === true) {
43
- jsonText = "True";
44
- }
45
- if (typeof jsonText === "boolean" && jsonText === false) {
46
- jsonText = "False";
41
+ /*
42
+ * Ignore entries with empty key or empty value, and translate
43
+ * operator wrappers into their display symbol so chips like
44
+ * `host.name != prod-1` or `path contains api` render correctly.
45
+ */
46
+ const isMeaningfulEntry = (key, value) => {
47
+ if (key.trim() === "" || value === undefined || value === null) {
48
+ return false;
49
+ }
50
+ const detected = detectOperatorFromValue(value);
51
+ const option = getOperatorOption(detected.operator);
52
+ if (option.hidesValueInput) {
53
+ return true;
54
+ }
55
+ return detected.rawValue.trim() !== "";
56
+ };
57
+ const visibleKeys = Object.keys(json).filter((key) => {
58
+ return isMeaningfulEntry(key, json[key]);
59
+ });
60
+ return (React.createElement("div", { className: "flex space-x-2 -mt-1" }, visibleKeys.map((key, i) => {
61
+ const rawValue = json[key];
62
+ const detected = detectOperatorFromValue(rawValue);
63
+ const option = getOperatorOption(detected.operator);
64
+ let jsonText = detected.rawValue;
65
+ if (typeof rawValue === "boolean") {
66
+ jsonText = rawValue ? "True" : "False";
47
67
  }
48
68
  return (React.createElement("div", { key: i, className: "rounded-full h-7 bg-gray-100 text-gray-500 border-2 border-gray-200 p-1 pr-2 pl-2 text-xs" },
49
69
  React.createElement("span", { className: "font-medium" }, key),
50
- " =",
51
70
  " ",
52
- React.createElement("span", { className: "font-medium" }, jsonText)));
71
+ React.createElement("span", null, option.symbol),
72
+ !option.hidesValueInput && (React.createElement(React.Fragment, null,
73
+ " ",
74
+ React.createElement("span", { className: "font-medium" }, jsonText)))));
53
75
  })));
54
76
  };
55
77
  const translateFilterToText = (data) => {
@@ -198,11 +220,27 @@ const FilterComponent = (props) => {
198
220
  if (data.filter.type === FieldType.JSON) {
199
221
  const key = data.filter.key;
200
222
  const json = data.filterData[key];
201
- // if json is empty, return null
202
- if (Object.keys(json).length === 0) {
223
+ /*
224
+ * Count only meaningful entries — empty key/value pairs aren't
225
+ * real filters, and value-less operators (IsEmpty/IsNotEmpty) are
226
+ * valid even with no value.
227
+ */
228
+ const nonEmptyEntryCount = Object.keys(json).filter((entryKey) => {
229
+ const value = json[entryKey];
230
+ if (entryKey.trim() === "" || value === undefined || value === null) {
231
+ return false;
232
+ }
233
+ const detected = detectOperatorFromValue(value);
234
+ const option = getOperatorOption(detected.operator);
235
+ if (option.hidesValueInput) {
236
+ return true;
237
+ }
238
+ return detected.rawValue.trim() !== "";
239
+ }).length;
240
+ if (nonEmptyEntryCount === 0) {
203
241
  return null;
204
242
  }
205
- const isPlural = Object.keys(json).length > 1;
243
+ const isPlural = nonEmptyEntryCount > 1;
206
244
  return (React.createElement("span", { className: "inline-flex items-center space-x-1" },
207
245
  React.createElement("span", { className: "font-medium" }, data.filter.title),
208
246
  React.createElement("span", null, isPlural ? "are" : "is"),