@oneuptime/common 10.0.69 → 10.0.70

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 (82) hide show
  1. package/Models/DatabaseModels/KubernetesCluster.ts +5 -0
  2. package/Server/Infrastructure/Postgres/SchemaMigrations/1776865086264-MigrationName.ts +11 -8
  3. package/Server/Infrastructure/Postgres/SchemaMigrations/1776881254913-DedupeKubernetesClustersAndAddUniqueIndex.ts +134 -0
  4. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  5. package/Server/Services/DatabaseService.ts +10 -27
  6. package/Server/Services/KubernetesResourceService.ts +33 -10
  7. package/Server/Types/Database/QueryHelper.ts +127 -0
  8. package/Server/Types/Database/QueryUtil.ts +244 -0
  9. package/Types/BaseDatabase/EndsWith.ts +41 -0
  10. package/Types/BaseDatabase/IncludesAll.ts +45 -0
  11. package/Types/BaseDatabase/IncludesNone.ts +48 -0
  12. package/Types/BaseDatabase/NotContains.ts +41 -0
  13. package/Types/BaseDatabase/StartsWith.ts +41 -0
  14. package/Types/JSON.ts +20 -0
  15. package/Types/SerializableObjectDictionary.ts +10 -0
  16. package/UI/Components/Filters/BooleanFilter.tsx +1 -0
  17. package/UI/Components/Filters/DateFilter.tsx +212 -25
  18. package/UI/Components/Filters/DropdownFilter.tsx +1 -0
  19. package/UI/Components/Filters/EntityFilter.tsx +214 -41
  20. package/UI/Components/Filters/FilterViewer.tsx +228 -146
  21. package/UI/Components/Filters/FilterViewerItem.tsx +1 -11
  22. package/UI/Components/Filters/FiltersForm.tsx +148 -97
  23. package/UI/Components/Filters/NumberFilter.tsx +219 -34
  24. package/UI/Components/Filters/OperatorSelector.tsx +91 -0
  25. package/UI/Components/Filters/TextFilter.tsx +182 -71
  26. package/UI/Components/Filters/Types/FilterOperator.ts +73 -0
  27. package/UI/Components/ModelTable/BaseModelTable.tsx +8 -0
  28. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +7 -1
  29. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  30. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776865086264-MigrationName.js +1 -1
  31. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776865086264-MigrationName.js.map +1 -1
  32. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776881254913-DedupeKubernetesClustersAndAddUniqueIndex.js +123 -0
  33. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776881254913-DedupeKubernetesClustersAndAddUniqueIndex.js.map +1 -0
  34. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  35. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  36. package/build/dist/Server/Services/DatabaseService.js +9 -6
  37. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  38. package/build/dist/Server/Services/KubernetesResourceService.js +4 -2
  39. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
  40. package/build/dist/Server/Types/Database/QueryHelper.js +110 -0
  41. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  42. package/build/dist/Server/Types/Database/QueryUtil.js +180 -0
  43. package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
  44. package/build/dist/Types/BaseDatabase/EndsWith.js +31 -0
  45. package/build/dist/Types/BaseDatabase/EndsWith.js.map +1 -0
  46. package/build/dist/Types/BaseDatabase/IncludesAll.js +34 -0
  47. package/build/dist/Types/BaseDatabase/IncludesAll.js.map +1 -0
  48. package/build/dist/Types/BaseDatabase/IncludesNone.js +34 -0
  49. package/build/dist/Types/BaseDatabase/IncludesNone.js.map +1 -0
  50. package/build/dist/Types/BaseDatabase/NotContains.js +31 -0
  51. package/build/dist/Types/BaseDatabase/NotContains.js.map +1 -0
  52. package/build/dist/Types/BaseDatabase/StartsWith.js +31 -0
  53. package/build/dist/Types/BaseDatabase/StartsWith.js.map +1 -0
  54. package/build/dist/Types/JSON.js +5 -0
  55. package/build/dist/Types/JSON.js.map +1 -1
  56. package/build/dist/Types/SerializableObjectDictionary.js +10 -0
  57. package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
  58. package/build/dist/UI/Components/Filters/BooleanFilter.js +1 -1
  59. package/build/dist/UI/Components/Filters/BooleanFilter.js.map +1 -1
  60. package/build/dist/UI/Components/Filters/DateFilter.js +158 -14
  61. package/build/dist/UI/Components/Filters/DateFilter.js.map +1 -1
  62. package/build/dist/UI/Components/Filters/DropdownFilter.js +1 -1
  63. package/build/dist/UI/Components/Filters/DropdownFilter.js.map +1 -1
  64. package/build/dist/UI/Components/Filters/EntityFilter.js +174 -30
  65. package/build/dist/UI/Components/Filters/EntityFilter.js.map +1 -1
  66. package/build/dist/UI/Components/Filters/FilterViewer.js +188 -97
  67. package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
  68. package/build/dist/UI/Components/Filters/FilterViewerItem.js +1 -6
  69. package/build/dist/UI/Components/Filters/FilterViewerItem.js.map +1 -1
  70. package/build/dist/UI/Components/Filters/FiltersForm.js +46 -38
  71. package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
  72. package/build/dist/UI/Components/Filters/NumberFilter.js +165 -23
  73. package/build/dist/UI/Components/Filters/NumberFilter.js.map +1 -1
  74. package/build/dist/UI/Components/Filters/OperatorSelector.js +41 -0
  75. package/build/dist/UI/Components/Filters/OperatorSelector.js.map +1 -0
  76. package/build/dist/UI/Components/Filters/TextFilter.js +130 -53
  77. package/build/dist/UI/Components/Filters/TextFilter.js.map +1 -1
  78. package/build/dist/UI/Components/Filters/Types/FilterOperator.js +63 -0
  79. package/build/dist/UI/Components/Filters/Types/FilterOperator.js.map +1 -0
  80. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +7 -0
  81. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  82. package/package.json +1 -1
@@ -1,12 +1,18 @@
1
- import Input, { InputType } from "../Input/Input";
2
1
  import FieldType from "../Types/FieldType";
3
2
  import Filter from "./Types/Filter";
4
3
  import FilterData from "./Types/FilterData";
4
+ import FilterOperator from "./Types/FilterOperator";
5
+ import OperatorSelector from "./OperatorSelector";
5
6
  import Search from "../../../Types/BaseDatabase/Search";
6
- import DatabaseDate from "../../../Types/Database/Date";
7
- import OneUptimeDate from "../../../Types/Date";
7
+ import EqualTo from "../../../Types/BaseDatabase/EqualTo";
8
+ import NotEqual from "../../../Types/BaseDatabase/NotEqual";
9
+ import StartsWith from "../../../Types/BaseDatabase/StartsWith";
10
+ import EndsWith from "../../../Types/BaseDatabase/EndsWith";
11
+ import NotContains from "../../../Types/BaseDatabase/NotContains";
12
+ import IsNull from "../../../Types/BaseDatabase/IsNull";
13
+ import NotNull from "../../../Types/BaseDatabase/NotNull";
8
14
  import GenericObject from "../../../Types/GenericObject";
9
- import React, { ReactElement } from "react";
15
+ import React, { ReactElement, useEffect, useState } from "react";
10
16
 
11
17
  export interface ComponentProps<T extends GenericObject> {
12
18
  filter: Filter<T>;
@@ -18,83 +24,188 @@ type TextFilterFunction = <T extends GenericObject>(
18
24
  props: ComponentProps<T>,
19
25
  ) => ReactElement;
20
26
 
27
+ const TEXT_FIELD_TYPES: Array<FieldType> = [
28
+ FieldType.Text,
29
+ FieldType.LongText,
30
+ FieldType.Email,
31
+ FieldType.Phone,
32
+ FieldType.Name,
33
+ FieldType.Port,
34
+ FieldType.URL,
35
+ FieldType.Hostname,
36
+ FieldType.ObjectID,
37
+ ];
38
+
39
+ const TEXT_OPERATORS: Array<FilterOperator> = [
40
+ FilterOperator.Contains,
41
+ FilterOperator.DoesNotContain,
42
+ FilterOperator.EqualTo,
43
+ FilterOperator.NotEqualTo,
44
+ FilterOperator.StartsWith,
45
+ FilterOperator.EndsWith,
46
+ FilterOperator.IsEmpty,
47
+ FilterOperator.IsNotEmpty,
48
+ ];
49
+
50
+ type DetectCurrentStateFunction = (rawValue: unknown) => {
51
+ operator: FilterOperator;
52
+ value: string;
53
+ };
54
+
55
+ const detectCurrentState: DetectCurrentStateFunction = (
56
+ rawValue: unknown,
57
+ ): { operator: FilterOperator; value: string } => {
58
+ if (rawValue instanceof Search) {
59
+ return { operator: FilterOperator.Contains, value: rawValue.value };
60
+ }
61
+ if (rawValue instanceof NotContains) {
62
+ return { operator: FilterOperator.DoesNotContain, value: rawValue.value };
63
+ }
64
+ if (rawValue instanceof StartsWith) {
65
+ return { operator: FilterOperator.StartsWith, value: rawValue.value };
66
+ }
67
+ if (rawValue instanceof EndsWith) {
68
+ return { operator: FilterOperator.EndsWith, value: rawValue.value };
69
+ }
70
+ if (rawValue instanceof EqualTo) {
71
+ return { operator: FilterOperator.EqualTo, value: rawValue.toString() };
72
+ }
73
+ if (rawValue instanceof NotEqual) {
74
+ return { operator: FilterOperator.NotEqualTo, value: rawValue.toString() };
75
+ }
76
+ if (rawValue instanceof IsNull) {
77
+ return { operator: FilterOperator.IsEmpty, value: "" };
78
+ }
79
+ if (rawValue instanceof NotNull) {
80
+ return { operator: FilterOperator.IsNotEmpty, value: "" };
81
+ }
82
+ if (typeof rawValue === "string" && rawValue.length > 0) {
83
+ // Backward compatibility for plain string values.
84
+ return { operator: FilterOperator.Contains, value: rawValue };
85
+ }
86
+ return { operator: FilterOperator.Contains, value: "" };
87
+ };
88
+
89
+ type BuildQueryValueFunction = (
90
+ operator: FilterOperator,
91
+ value: string,
92
+ ) => unknown;
93
+
94
+ const buildQueryValue: BuildQueryValueFunction = (
95
+ operator: FilterOperator,
96
+ value: string,
97
+ ): unknown => {
98
+ switch (operator) {
99
+ case FilterOperator.Contains:
100
+ return value ? new Search(value) : undefined;
101
+ case FilterOperator.DoesNotContain:
102
+ return value ? new NotContains(value) : undefined;
103
+ case FilterOperator.StartsWith:
104
+ return value ? new StartsWith(value) : undefined;
105
+ case FilterOperator.EndsWith:
106
+ return value ? new EndsWith(value) : undefined;
107
+ case FilterOperator.EqualTo:
108
+ return value ? new EqualTo(value) : undefined;
109
+ case FilterOperator.NotEqualTo:
110
+ return value ? new NotEqual(value) : undefined;
111
+ case FilterOperator.IsEmpty:
112
+ return new IsNull();
113
+ case FilterOperator.IsNotEmpty:
114
+ return new NotNull();
115
+ default:
116
+ return undefined;
117
+ }
118
+ };
119
+
21
120
  const TextFilter: TextFilterFunction = <T extends GenericObject>(
22
121
  props: ComponentProps<T>,
23
122
  ): ReactElement => {
24
123
  const filter: Filter<T> = props.filter;
25
- const filterData: FilterData<T> = { ...props.filterData };
26
124
 
27
- let inputType: InputType = InputType.TEXT;
125
+ if (filter.filterDropdownOptions) {
126
+ return <></>;
127
+ }
28
128
 
29
- if (filter.type === FieldType.Date) {
30
- inputType = InputType.DATE;
31
- } else if (filter.type === FieldType.DateTime) {
32
- inputType = InputType.DATETIME_LOCAL;
129
+ if (!TEXT_FIELD_TYPES.includes(filter.type)) {
130
+ return <></>;
33
131
  }
34
132
 
35
- if (
36
- !filter.filterDropdownOptions &&
37
- (filter.type === FieldType.Email ||
38
- filter.type === FieldType.Phone ||
39
- filter.type === FieldType.Name ||
40
- filter.type === FieldType.Port ||
41
- filter.type === FieldType.URL ||
42
- filter.type === FieldType.ObjectID ||
43
- filter.type === FieldType.Text ||
44
- filter.type === FieldType.LongText)
45
- ) {
46
- return (
47
- <Input
48
- onChange={(changedValue: string | Date) => {
49
- if (filter.key) {
50
- if (!changedValue) {
51
- delete filterData[filter.key];
52
- }
53
-
54
- if (
55
- changedValue &&
56
- (filter.type === FieldType.Date ||
57
- filter.type === FieldType.DateTime)
58
- ) {
59
- filterData[filter.key] =
60
- OneUptimeDate.asFilterDateForDatabaseQuery(
61
- changedValue as string,
62
- );
63
- }
64
-
65
- if (changedValue && filter.type === FieldType.DateTime) {
66
- filterData[filter.key] =
67
- DatabaseDate.asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
68
- changedValue,
69
- );
70
- }
71
-
72
- if (
73
- changedValue &&
74
- (filter.type === FieldType.Text ||
75
- filter.type === FieldType.Email ||
76
- filter.type === FieldType.Phone ||
77
- filter.type === FieldType.Name ||
78
- filter.type === FieldType.Port ||
79
- filter.type === FieldType.URL ||
80
- filter.type === FieldType.ObjectID)
81
- ) {
82
- filterData[filter.key] = new Search(changedValue.toString());
83
- }
84
-
85
- if (props.onFilterChanged) {
86
- props.onFilterChanged(filterData);
87
- }
88
- }
133
+ const detected: { operator: FilterOperator; value: string } =
134
+ detectCurrentState(props.filterData[filter.key]);
135
+
136
+ // Keep the operator locally so the user's choice persists even when no
137
+ // value has been typed yet (otherwise buildQueryValue returns undefined,
138
+ // the filter is deleted, and the operator resets on re-render).
139
+ const [localOperator, setLocalOperator] = useState<FilterOperator>(
140
+ detected.operator,
141
+ );
142
+
143
+ useEffect(() => {
144
+ const raw: unknown = props.filterData[filter.key];
145
+ if (raw !== undefined && raw !== null) {
146
+ setLocalOperator(detected.operator);
147
+ }
148
+ // eslint-disable-next-line react-hooks/exhaustive-deps
149
+ }, [props.filterData[filter.key]]);
150
+
151
+ const operator: FilterOperator = localOperator;
152
+ const value: string = detected.value;
153
+
154
+ const valuelessOperator: boolean =
155
+ operator === FilterOperator.IsEmpty ||
156
+ operator === FilterOperator.IsNotEmpty;
157
+
158
+ type ApplyFunction = (data: {
159
+ operator: FilterOperator;
160
+ value: string;
161
+ }) => void;
162
+
163
+ const apply: ApplyFunction = (data: {
164
+ operator: FilterOperator;
165
+ value: string;
166
+ }): void => {
167
+ if (!filter.key) {
168
+ return;
169
+ }
170
+
171
+ setLocalOperator(data.operator);
172
+
173
+ const next: FilterData<T> = { ...props.filterData };
174
+ const built: unknown = buildQueryValue(data.operator, data.value);
175
+
176
+ if (built === undefined) {
177
+ delete next[filter.key];
178
+ } else {
179
+ next[filter.key] = built as any;
180
+ }
181
+
182
+ props.onFilterChanged?.(next);
183
+ };
184
+
185
+ return (
186
+ <div className="flex gap-2 items-start">
187
+ <OperatorSelector
188
+ value={operator}
189
+ options={TEXT_OPERATORS}
190
+ onChange={(nextOperator: FilterOperator) => {
191
+ apply({ operator: nextOperator, value });
89
192
  }}
90
- initialValue={(filterData[filter.key] || "").toString()}
91
- placeholder={`Filter by ${filter.title}`}
92
- type={inputType}
93
193
  />
94
- );
95
- }
96
-
97
- return <></>;
194
+ {!valuelessOperator && (
195
+ <div className="flex-1 min-w-0">
196
+ <input
197
+ type="text"
198
+ value={value}
199
+ onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
200
+ apply({ operator, value: e.target.value });
201
+ }}
202
+ placeholder={`Filter by ${filter.title}`}
203
+ className="block w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-3 text-sm placeholder-gray-500 focus:border-indigo-500 focus:text-gray-900 focus:placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm"
204
+ />
205
+ </div>
206
+ )}
207
+ </div>
208
+ );
98
209
  };
99
210
 
100
211
  export default TextFilter;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Operators that a user can pick in the filter UI. Not every operator is
3
+ * valid for every field type — use `getOperatorsForFieldType` to get the list
4
+ * that applies to a given field.
5
+ */
6
+ enum FilterOperator {
7
+ // Text
8
+ Contains = "contains",
9
+ DoesNotContain = "does_not_contain",
10
+ StartsWith = "starts_with",
11
+ EndsWith = "ends_with",
12
+
13
+ // Comparison (shared across text / number / date)
14
+ EqualTo = "equal_to",
15
+ NotEqualTo = "not_equal_to",
16
+ GreaterThan = "greater_than",
17
+ LessThan = "less_than",
18
+ GreaterThanOrEqualTo = "greater_than_or_equal_to",
19
+ LessThanOrEqualTo = "less_than_or_equal_to",
20
+ Between = "between",
21
+
22
+ // Date-specific aliases for comparison
23
+ Before = "before",
24
+ After = "after",
25
+
26
+ // Entity / single-value selection
27
+ Is = "is",
28
+ IsNot = "is_not",
29
+
30
+ // Entity array selection
31
+ HasAnyOf = "has_any_of",
32
+ HasAllOf = "has_all_of",
33
+ HasNoneOf = "has_none_of",
34
+
35
+ // Presence
36
+ IsEmpty = "is_empty",
37
+ IsNotEmpty = "is_not_empty",
38
+
39
+ // Boolean
40
+ IsTrue = "is_true",
41
+ IsFalse = "is_false",
42
+ }
43
+
44
+ export default FilterOperator;
45
+
46
+ type FilterOperatorLabelMap = {
47
+ [key in FilterOperator]: string;
48
+ };
49
+
50
+ export const FilterOperatorLabel: FilterOperatorLabelMap = {
51
+ [FilterOperator.Contains]: "contains",
52
+ [FilterOperator.DoesNotContain]: "does not contain",
53
+ [FilterOperator.StartsWith]: "starts with",
54
+ [FilterOperator.EndsWith]: "ends with",
55
+ [FilterOperator.EqualTo]: "equals",
56
+ [FilterOperator.NotEqualTo]: "does not equal",
57
+ [FilterOperator.GreaterThan]: "is greater than",
58
+ [FilterOperator.LessThan]: "is less than",
59
+ [FilterOperator.GreaterThanOrEqualTo]: "is greater than or equal to",
60
+ [FilterOperator.LessThanOrEqualTo]: "is less than or equal to",
61
+ [FilterOperator.Between]: "is between",
62
+ [FilterOperator.Before]: "is before",
63
+ [FilterOperator.After]: "is after",
64
+ [FilterOperator.Is]: "is",
65
+ [FilterOperator.IsNot]: "is not",
66
+ [FilterOperator.HasAnyOf]: "has any of",
67
+ [FilterOperator.HasAllOf]: "has all of",
68
+ [FilterOperator.HasNoneOf]: "has none of",
69
+ [FilterOperator.IsEmpty]: "is empty",
70
+ [FilterOperator.IsNotEmpty]: "is not empty",
71
+ [FilterOperator.IsTrue]: "is true",
72
+ [FilterOperator.IsFalse]: "is false",
73
+ };
@@ -1,4 +1,5 @@
1
1
  import Includes from "../../../Types/BaseDatabase/Includes";
2
+ import QueryOperator from "../../../Types/BaseDatabase/QueryOperator";
2
3
  import { API_DOCS_URL, BILLING_ENABLED, getAllEnvVars } from "../../Config";
3
4
  import { GetReactElementFunction } from "../../Types/FunctionTypes";
4
5
  import SelectEntityField from "../../Types/SelectEntityField";
@@ -1523,6 +1524,13 @@ const BaseModelTable: <TBaseModel extends BaseModel | AnalyticsBaseModel>(
1523
1524
  filterData[key] as Array<string>,
1524
1525
  );
1525
1526
  }
1527
+
1528
+ // Pass any QueryOperator instance (IncludesAll, IncludesNone, StartsWith,
1529
+ // EndsWith, NotContains, EqualTo, NotEqual, GreaterThan, LessThan,
1530
+ // InBetween, IsNull, NotNull, ...) through to the query as-is.
1531
+ if (filterData[key] instanceof QueryOperator) {
1532
+ newQuery[key as keyof TBaseModel] = filterData[key];
1533
+ }
1526
1534
  }
1527
1535
 
1528
1536
  setQuery({ ...newQuery });
@@ -698,7 +698,13 @@ KubernetesCluster = __decorate([
698
698
  read: true,
699
699
  }),
700
700
  CrudApiEndpoint(new Route("/kubernetes-cluster")),
701
- SlugifyColumn("name", "slug"),
701
+ SlugifyColumn("name", "slug")
702
+ // Enforce one cluster row per (projectId, clusterIdentifier) at the DB level.
703
+ // Without this, two pods emitting OTel telemetry for a new cluster at the
704
+ // same time (e.g. when the agent is first installed or during a rolling
705
+ // update) race in findOrCreateByClusterIdentifier and create duplicate rows.
706
+ ,
707
+ Index(["projectId", "clusterIdentifier"], { unique: true }),
702
708
  TableMetadata({
703
709
  tableName: "KubernetesCluster",
704
710
  singularName: "Kubernetes Cluster",
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesCluster.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/KubernetesCluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesCluster.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/KubernetesCluster.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export class MigrationName1776865086264 {
2
2
  constructor() {
3
- this.name = 'MigrationName1776865086264';
3
+ this.name = "MigrationName1776865086264";
4
4
  }
5
5
  async up(queryRunner) {
6
6
  await queryRunner.query(`ALTER TABLE "KubernetesResource" ADD "containerCount" integer`);
@@ -1 +1 @@
1
- {"version":3,"file":"1776865086264-MigrationName.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1776865086264-MigrationName.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,0BAA0B;IAAvC;QACI,SAAI,GAAG,4BAA4B,CAAA;IAUvC,CAAC;IARU,KAAK,CAAC,EAAE,CAAC,WAAwB;QACpC,MAAM,WAAW,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC7F,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC7F,CAAC;CAEJ"}
1
+ {"version":3,"file":"1776865086264-MigrationName.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1776865086264-MigrationName.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,0BAA0B;IAAvC;QACS,SAAI,GAAW,4BAA4B,CAAC;IAarD,CAAC;IAXQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,+DAA+D,CAChE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,123 @@
1
+ /*
2
+ * Before this migration, KubernetesCluster had an app-level
3
+ * @UniqueColumnBy("projectId") check and a non-unique index on
4
+ * clusterIdentifier, but no DB-level uniqueness. Under concurrent telemetry
5
+ * from multiple agent pods (happens every time the agent is installed or
6
+ * rolls out), findOrCreateByClusterIdentifier would race between its find
7
+ * and its create, and the DB accepted both inserts — producing duplicate
8
+ * rows with identical (projectId, clusterIdentifier).
9
+ *
10
+ * This migration:
11
+ * 1. Reparents all FKs that reference duplicate clusters — KubernetesResource,
12
+ * KubernetesClusterOwnerUser, KubernetesClusterOwnerTeam — onto the
13
+ * oldest surviving row in each duplicate group.
14
+ * 2. Deletes the duplicate (non-survivor) rows.
15
+ * 3. Creates a DB-level unique index on (projectId, clusterIdentifier) so
16
+ * future races are rejected by the DB — the service's existing
17
+ * catch-and-refetch in findOrCreateByClusterIdentifier then returns the
18
+ * winning row instead of producing a duplicate.
19
+ *
20
+ * The auto-generator also picked up unrelated OnCallDutyPolicyScheduleLayer
21
+ * default-value drift. That's dev-environment drift, not the bug we're fixing;
22
+ * stripped from this migration.
23
+ */
24
+ export class DedupeKubernetesClustersAndAddUniqueIndex1776881254913 {
25
+ constructor() {
26
+ this.name = "DedupeKubernetesClustersAndAddUniqueIndex1776881254913";
27
+ }
28
+ async up(queryRunner) {
29
+ // 1: reparent KubernetesResource FKs from duplicates -> survivor.
30
+ await queryRunner.query(`
31
+ WITH survivors AS (
32
+ SELECT DISTINCT ON ("projectId", "clusterIdentifier")
33
+ _id AS survivor_id,
34
+ "projectId",
35
+ "clusterIdentifier"
36
+ FROM "KubernetesCluster"
37
+ ORDER BY "projectId", "clusterIdentifier", "createdAt" ASC, _id ASC
38
+ ),
39
+ losers AS (
40
+ SELECT kc._id AS loser_id, s.survivor_id
41
+ FROM "KubernetesCluster" kc
42
+ JOIN survivors s
43
+ ON s."projectId" = kc."projectId"
44
+ AND s."clusterIdentifier" = kc."clusterIdentifier"
45
+ WHERE kc._id <> s.survivor_id
46
+ )
47
+ UPDATE "KubernetesResource" kr
48
+ SET "kubernetesClusterId" = l.survivor_id
49
+ FROM losers l
50
+ WHERE kr."kubernetesClusterId" = l.loser_id;
51
+ `);
52
+ // 2: reparent KubernetesClusterOwnerUser FKs.
53
+ await queryRunner.query(`
54
+ WITH survivors AS (
55
+ SELECT DISTINCT ON ("projectId", "clusterIdentifier")
56
+ _id AS survivor_id,
57
+ "projectId",
58
+ "clusterIdentifier"
59
+ FROM "KubernetesCluster"
60
+ ORDER BY "projectId", "clusterIdentifier", "createdAt" ASC, _id ASC
61
+ ),
62
+ losers AS (
63
+ SELECT kc._id AS loser_id, s.survivor_id
64
+ FROM "KubernetesCluster" kc
65
+ JOIN survivors s
66
+ ON s."projectId" = kc."projectId"
67
+ AND s."clusterIdentifier" = kc."clusterIdentifier"
68
+ WHERE kc._id <> s.survivor_id
69
+ )
70
+ UPDATE "KubernetesClusterOwnerUser" o
71
+ SET "kubernetesClusterId" = l.survivor_id
72
+ FROM losers l
73
+ WHERE o."kubernetesClusterId" = l.loser_id;
74
+ `);
75
+ // 3: reparent KubernetesClusterOwnerTeam FKs.
76
+ await queryRunner.query(`
77
+ WITH survivors AS (
78
+ SELECT DISTINCT ON ("projectId", "clusterIdentifier")
79
+ _id AS survivor_id,
80
+ "projectId",
81
+ "clusterIdentifier"
82
+ FROM "KubernetesCluster"
83
+ ORDER BY "projectId", "clusterIdentifier", "createdAt" ASC, _id ASC
84
+ ),
85
+ losers AS (
86
+ SELECT kc._id AS loser_id, s.survivor_id
87
+ FROM "KubernetesCluster" kc
88
+ JOIN survivors s
89
+ ON s."projectId" = kc."projectId"
90
+ AND s."clusterIdentifier" = kc."clusterIdentifier"
91
+ WHERE kc._id <> s.survivor_id
92
+ )
93
+ UPDATE "KubernetesClusterOwnerTeam" o
94
+ SET "kubernetesClusterId" = l.survivor_id
95
+ FROM losers l
96
+ WHERE o."kubernetesClusterId" = l.loser_id;
97
+ `);
98
+ // 4: delete duplicate rows now that nothing references them.
99
+ await queryRunner.query(`
100
+ WITH survivors AS (
101
+ SELECT DISTINCT ON ("projectId", "clusterIdentifier")
102
+ _id AS survivor_id,
103
+ "projectId",
104
+ "clusterIdentifier"
105
+ FROM "KubernetesCluster"
106
+ ORDER BY "projectId", "clusterIdentifier", "createdAt" ASC, _id ASC
107
+ )
108
+ DELETE FROM "KubernetesCluster" kc
109
+ USING survivors s
110
+ WHERE s."projectId" = kc."projectId"
111
+ AND s."clusterIdentifier" = kc."clusterIdentifier"
112
+ AND kc._id <> s.survivor_id;
113
+ `);
114
+ // 5: add the DB-level composite unique index.
115
+ await queryRunner.query(`CREATE UNIQUE INDEX "IDX_9756988b48848f4f7532a2af0d" ON "KubernetesCluster" ("projectId", "clusterIdentifier") `);
116
+ }
117
+ async down(queryRunner) {
118
+ await queryRunner.query(`DROP INDEX "public"."IDX_9756988b48848f4f7532a2af0d"`);
119
+ // Duplicate rows dropped in up() are lost — a down-migration cannot
120
+ // resurrect them (and reinstating duplicates is not desirable anyway).
121
+ }
122
+ }
123
+ //# sourceMappingURL=1776881254913-DedupeKubernetesClustersAndAddUniqueIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1776881254913-DedupeKubernetesClustersAndAddUniqueIndex.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1776881254913-DedupeKubernetesClustersAndAddUniqueIndex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,sDAAsD;IAAnE;QAGS,SAAI,GAAW,wDAAwD,CAAC;IAyGjF,CAAC;IAvGQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,kEAAkE;QAClE,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBvB,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBvB,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBvB,CAAC,CAAC;QAEH,6DAA6D;QAC7D,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;KAcvB,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,WAAW,CAAC,KAAK,CACrB,iHAAiH,CAClH,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,oEAAoE;QACpE,uEAAuE;IACzE,CAAC;CACF"}
@@ -288,6 +288,7 @@ import { MigrationName1776544084793 } from "./1776544084793-MigrationName";
288
288
  import { MigrationName1776761171349 } from "./1776761171349-MigrationName";
289
289
  import { MigrationName1776801030808 } from "./1776801030808-MigrationName";
290
290
  import { MigrationName1776865086264 } from "./1776865086264-MigrationName";
291
+ import { DedupeKubernetesClustersAndAddUniqueIndex1776881254913 } from "./1776881254913-DedupeKubernetesClustersAndAddUniqueIndex";
291
292
  export default [
292
293
  InitialMigration,
293
294
  MigrationName1717678334852,
@@ -579,5 +580,6 @@ export default [
579
580
  MigrationName1776761171349,
580
581
  MigrationName1776801030808,
581
582
  MigrationName1776865086264,
583
+ DedupeKubernetesClustersAndAddUniqueIndex1776881254913,
582
584
  ];
583
585
  //# sourceMappingURL=Index.js.map