@oneuptime/common 10.0.65 → 10.0.66

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 (210) hide show
  1. package/Models/DatabaseModels/DockerHostOwnerTeam.ts +464 -0
  2. package/Models/DatabaseModels/DockerHostOwnerUser.ts +463 -0
  3. package/Models/DatabaseModels/Index.ts +24 -0
  4. package/Models/DatabaseModels/KubernetesClusterOwnerTeam.ts +464 -0
  5. package/Models/DatabaseModels/KubernetesClusterOwnerUser.ts +463 -0
  6. package/Models/DatabaseModels/KubernetesResource.ts +548 -0
  7. package/Models/DatabaseModels/MetricPipelineRule.ts +804 -0
  8. package/Models/DatabaseModels/MetricRecordingRule.ts +470 -0
  9. package/Models/DatabaseModels/Monitor.ts +2 -0
  10. package/Models/DatabaseModels/Project.ts +53 -0
  11. package/Models/DatabaseModels/Service.ts +79 -0
  12. package/Models/DatabaseModels/TraceDropFilter.ts +508 -0
  13. package/Models/DatabaseModels/TracePipeline.ts +436 -0
  14. package/Models/DatabaseModels/TracePipelineProcessor.ts +454 -0
  15. package/Models/DatabaseModels/TraceRecordingRule.ts +470 -0
  16. package/Models/DatabaseModels/TraceScrubRule.ts +546 -0
  17. package/Server/API/KubernetesResourceAPI.ts +129 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.ts +399 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.ts +205 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.ts +335 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.ts +29 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.ts +53 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -1
  24. package/Server/Services/DockerHostOwnerTeamService.ts +10 -0
  25. package/Server/Services/DockerHostOwnerUserService.ts +10 -0
  26. package/Server/Services/KubernetesClusterOwnerTeamService.ts +10 -0
  27. package/Server/Services/KubernetesClusterOwnerUserService.ts +10 -0
  28. package/Server/Services/KubernetesResourceService.ts +351 -0
  29. package/Server/Services/MetricPipelineRuleService.ts +10 -0
  30. package/Server/Services/MetricRecordingRuleService.ts +10 -0
  31. package/Server/Services/TraceDropFilterService.ts +10 -0
  32. package/Server/Services/TracePipelineProcessorService.ts +10 -0
  33. package/Server/Services/TracePipelineService.ts +10 -0
  34. package/Server/Services/TraceRecordingRuleService.ts +10 -0
  35. package/Server/Services/TraceScrubRuleService.ts +10 -0
  36. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +71 -9
  37. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +483 -75
  38. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +379 -6
  39. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +502 -0
  40. package/Tests/Utils/MetricUnitUtil.test.ts +216 -0
  41. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +269 -0
  42. package/Tests/Utils/Metrics/MetricResultUnitConverter.test.ts +231 -0
  43. package/Tests/Utils/RecordingRuleExpression.test.ts +177 -0
  44. package/Types/Kubernetes/KubernetesInventoryExtractor.ts +327 -0
  45. package/Types/Kubernetes/KubernetesObjectParser.ts +1949 -0
  46. package/Types/Metrics/MetricDownsamplingRetentionDays.ts +49 -0
  47. package/Types/Metrics/MetricFormulaConfigData.ts +4 -0
  48. package/Types/Metrics/MetricPipelineRuleFilterCondition.ts +136 -0
  49. package/Types/Metrics/MetricPipelineRuleType.ts +27 -0
  50. package/Types/Metrics/RecordingRuleDefinition.ts +180 -0
  51. package/Types/Monitor/CriteriaFilter.ts +43 -0
  52. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +70 -0
  53. package/Types/Permission.ts +520 -0
  54. package/Types/Trace/TraceAggregationType.ts +17 -0
  55. package/Types/Trace/TraceDropFilterAction.ts +6 -0
  56. package/Types/Trace/TracePipelineProcessorType.ts +56 -0
  57. package/Types/Trace/TraceRecordingRuleDefinition.ts +218 -0
  58. package/Types/Trace/TraceScrubAction.ts +7 -0
  59. package/Types/Trace/TraceScrubField.ts +8 -0
  60. package/Types/Trace/TraceScrubPatternType.ts +10 -0
  61. package/UI/Components/CardSelect/CardSelect.tsx +9 -1
  62. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +6 -10
  63. package/UI/Components/Forms/Fields/FormField.tsx +1 -0
  64. package/UI/Components/Forms/Types/Field.ts +1 -0
  65. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +57 -0
  66. package/UI/Components/Page/Page.tsx +6 -0
  67. package/Utils/MetricUnitUtil.ts +289 -0
  68. package/Utils/Metrics/MetricFormulaEvaluator.ts +610 -0
  69. package/Utils/Metrics/MetricResultUnitConverter.ts +91 -0
  70. package/Utils/Metrics/RecordingRuleExpression.ts +359 -0
  71. package/Utils/ValueFormatter.ts +137 -13
  72. package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js +480 -0
  73. package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js.map +1 -0
  74. package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js +479 -0
  75. package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js.map +1 -0
  76. package/build/dist/Models/DatabaseModels/Index.js +24 -0
  77. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  78. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js +480 -0
  79. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js.map +1 -0
  80. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js +479 -0
  81. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js.map +1 -0
  82. package/build/dist/Models/DatabaseModels/KubernetesResource.js +590 -0
  83. package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -0
  84. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js +836 -0
  85. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js.map +1 -0
  86. package/build/dist/Models/DatabaseModels/MetricRecordingRule.js +497 -0
  87. package/build/dist/Models/DatabaseModels/MetricRecordingRule.js.map +1 -0
  88. package/build/dist/Models/DatabaseModels/Monitor.js +2 -0
  89. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  90. package/build/dist/Models/DatabaseModels/Project.js +53 -0
  91. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  92. package/build/dist/Models/DatabaseModels/Service.js +79 -0
  93. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  94. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +536 -0
  95. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -0
  96. package/build/dist/Models/DatabaseModels/TracePipeline.js +462 -0
  97. package/build/dist/Models/DatabaseModels/TracePipeline.js.map +1 -0
  98. package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js +476 -0
  99. package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js.map +1 -0
  100. package/build/dist/Models/DatabaseModels/TraceRecordingRule.js +497 -0
  101. package/build/dist/Models/DatabaseModels/TraceRecordingRule.js.map +1 -0
  102. package/build/dist/Models/DatabaseModels/TraceScrubRule.js +575 -0
  103. package/build/dist/Models/DatabaseModels/TraceScrubRule.js.map +1 -0
  104. package/build/dist/Server/API/KubernetesResourceAPI.js +98 -0
  105. package/build/dist/Server/API/KubernetesResourceAPI.js.map +1 -0
  106. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js +144 -0
  107. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js.map +1 -0
  108. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js +82 -0
  109. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js.map +1 -0
  110. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js +118 -0
  111. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js.map +1 -0
  112. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js +16 -0
  113. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js.map +1 -0
  114. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js +24 -0
  115. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js.map +1 -0
  116. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  117. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  118. package/build/dist/Server/Services/DockerHostOwnerTeamService.js +9 -0
  119. package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -0
  120. package/build/dist/Server/Services/DockerHostOwnerUserService.js +9 -0
  121. package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -0
  122. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +9 -0
  123. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -0
  124. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +9 -0
  125. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -0
  126. package/build/dist/Server/Services/KubernetesResourceService.js +237 -0
  127. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -0
  128. package/build/dist/Server/Services/MetricPipelineRuleService.js +9 -0
  129. package/build/dist/Server/Services/MetricPipelineRuleService.js.map +1 -0
  130. package/build/dist/Server/Services/MetricRecordingRuleService.js +9 -0
  131. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -0
  132. package/build/dist/Server/Services/TraceDropFilterService.js +9 -0
  133. package/build/dist/Server/Services/TraceDropFilterService.js.map +1 -0
  134. package/build/dist/Server/Services/TracePipelineProcessorService.js +9 -0
  135. package/build/dist/Server/Services/TracePipelineProcessorService.js.map +1 -0
  136. package/build/dist/Server/Services/TracePipelineService.js +9 -0
  137. package/build/dist/Server/Services/TracePipelineService.js.map +1 -0
  138. package/build/dist/Server/Services/TraceRecordingRuleService.js +9 -0
  139. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -0
  140. package/build/dist/Server/Services/TraceScrubRuleService.js +9 -0
  141. package/build/dist/Server/Services/TraceScrubRuleService.js.map +1 -0
  142. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +56 -9
  143. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  144. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +335 -53
  145. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  146. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +277 -5
  147. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  148. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +407 -0
  149. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +1 -0
  150. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +159 -0
  151. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +1 -0
  152. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +224 -0
  153. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +1 -0
  154. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +180 -0
  155. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +1 -0
  156. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +142 -0
  157. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +1 -0
  158. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js +200 -0
  159. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js.map +1 -0
  160. package/build/dist/Types/Kubernetes/KubernetesObjectParser.js +1205 -0
  161. package/build/dist/Types/Kubernetes/KubernetesObjectParser.js.map +1 -0
  162. package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js +32 -0
  163. package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js.map +1 -0
  164. package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js +103 -0
  165. package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js.map +1 -0
  166. package/build/dist/Types/Metrics/MetricPipelineRuleType.js +27 -0
  167. package/build/dist/Types/Metrics/MetricPipelineRuleType.js.map +1 -0
  168. package/build/dist/Types/Metrics/RecordingRuleDefinition.js +110 -0
  169. package/build/dist/Types/Metrics/RecordingRuleDefinition.js.map +1 -0
  170. package/build/dist/Types/Monitor/CriteriaFilter.js +22 -0
  171. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  172. package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js +2 -0
  173. package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js.map +1 -0
  174. package/build/dist/Types/Permission.js +454 -0
  175. package/build/dist/Types/Permission.js.map +1 -1
  176. package/build/dist/Types/Trace/TraceAggregationType.js +18 -0
  177. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -0
  178. package/build/dist/Types/Trace/TraceDropFilterAction.js +7 -0
  179. package/build/dist/Types/Trace/TraceDropFilterAction.js.map +1 -0
  180. package/build/dist/Types/Trace/TracePipelineProcessorType.js +10 -0
  181. package/build/dist/Types/Trace/TracePipelineProcessorType.js.map +1 -0
  182. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +145 -0
  183. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -0
  184. package/build/dist/Types/Trace/TraceScrubAction.js +8 -0
  185. package/build/dist/Types/Trace/TraceScrubAction.js.map +1 -0
  186. package/build/dist/Types/Trace/TraceScrubField.js +9 -0
  187. package/build/dist/Types/Trace/TraceScrubField.js.map +1 -0
  188. package/build/dist/Types/Trace/TraceScrubPatternType.js +11 -0
  189. package/build/dist/Types/Trace/TraceScrubPatternType.js.map +1 -0
  190. package/build/dist/UI/Components/CardSelect/CardSelect.js +3 -1
  191. package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
  192. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -9
  193. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  194. package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
  195. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  196. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +30 -0
  197. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  198. package/build/dist/UI/Components/Page/Page.js +1 -0
  199. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  200. package/build/dist/Utils/MetricUnitUtil.js +232 -0
  201. package/build/dist/Utils/MetricUnitUtil.js.map +1 -0
  202. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +453 -0
  203. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -0
  204. package/build/dist/Utils/Metrics/MetricResultUnitConverter.js +61 -0
  205. package/build/dist/Utils/Metrics/MetricResultUnitConverter.js.map +1 -0
  206. package/build/dist/Utils/Metrics/RecordingRuleExpression.js +298 -0
  207. package/build/dist/Utils/Metrics/RecordingRuleExpression.js.map +1 -0
  208. package/build/dist/Utils/ValueFormatter.js +123 -13
  209. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  210. package/package.json +1 -1
@@ -0,0 +1,575 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import Project from "./Project";
11
+ import User from "./User";
12
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
13
+ import Route from "../../Types/API/Route";
14
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
15
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
16
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
17
+ import ColumnLength from "../../Types/Database/ColumnLength";
18
+ import ColumnType from "../../Types/Database/ColumnType";
19
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
20
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
21
+ import TableColumn from "../../Types/Database/TableColumn";
22
+ import TableColumnType from "../../Types/Database/TableColumnType";
23
+ import TableMetadata from "../../Types/Database/TableMetadata";
24
+ import TenantColumn from "../../Types/Database/TenantColumn";
25
+ import IconProp from "../../Types/Icon/IconProp";
26
+ import ObjectID from "../../Types/ObjectID";
27
+ import Permission from "../../Types/Permission";
28
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
29
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
30
+ let TraceScrubRule = class TraceScrubRule extends BaseModel {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.project = undefined;
34
+ this.projectId = undefined;
35
+ this.name = undefined;
36
+ this.description = undefined;
37
+ this.patternType = undefined;
38
+ this.customRegex = undefined;
39
+ this.scrubAction = undefined;
40
+ this.fieldsToScrub = undefined;
41
+ this.isEnabled = undefined;
42
+ this.sortOrder = undefined;
43
+ this.createdByUser = undefined;
44
+ this.createdByUserId = undefined;
45
+ this.deletedByUser = undefined;
46
+ this.deletedByUserId = undefined;
47
+ }
48
+ };
49
+ __decorate([
50
+ ColumnAccessControl({
51
+ create: [
52
+ Permission.ProjectOwner,
53
+ Permission.ProjectAdmin,
54
+ Permission.CreateProjectTraceScrubRule,
55
+ ],
56
+ read: [
57
+ Permission.ProjectOwner,
58
+ Permission.ProjectAdmin,
59
+ Permission.ProjectMember,
60
+ Permission.Viewer,
61
+ Permission.TelemetryManager,
62
+ Permission.ReadProjectTraceScrubRule,
63
+ Permission.ReadAllProjectResources,
64
+ ],
65
+ update: [],
66
+ }),
67
+ TableColumn({
68
+ manyToOneRelationColumn: "projectId",
69
+ type: TableColumnType.Entity,
70
+ modelType: Project,
71
+ title: "Project",
72
+ description: "Relation to the project this trace scrub rule belongs to.",
73
+ }),
74
+ ManyToOne(() => {
75
+ return Project;
76
+ }, {
77
+ eager: false,
78
+ nullable: true,
79
+ onDelete: "CASCADE",
80
+ orphanedRowAction: "nullify",
81
+ }),
82
+ JoinColumn({ name: "projectId" }),
83
+ __metadata("design:type", Project)
84
+ ], TraceScrubRule.prototype, "project", void 0);
85
+ __decorate([
86
+ ColumnAccessControl({
87
+ create: [
88
+ Permission.ProjectOwner,
89
+ Permission.ProjectAdmin,
90
+ Permission.CreateProjectTraceScrubRule,
91
+ ],
92
+ read: [
93
+ Permission.ProjectOwner,
94
+ Permission.ProjectAdmin,
95
+ Permission.ProjectMember,
96
+ Permission.Viewer,
97
+ Permission.TelemetryManager,
98
+ Permission.ReadProjectTraceScrubRule,
99
+ Permission.ReadAllProjectResources,
100
+ ],
101
+ update: [],
102
+ }),
103
+ Index(),
104
+ TableColumn({
105
+ type: TableColumnType.ObjectID,
106
+ required: true,
107
+ canReadOnRelationQuery: true,
108
+ title: "Project ID",
109
+ description: "ID of the project this trace scrub rule belongs to.",
110
+ }),
111
+ Column({
112
+ type: ColumnType.ObjectID,
113
+ nullable: false,
114
+ transformer: ObjectID.getDatabaseTransformer(),
115
+ }),
116
+ __metadata("design:type", ObjectID)
117
+ ], TraceScrubRule.prototype, "projectId", void 0);
118
+ __decorate([
119
+ ColumnAccessControl({
120
+ create: [
121
+ Permission.ProjectOwner,
122
+ Permission.ProjectAdmin,
123
+ Permission.CreateProjectTraceScrubRule,
124
+ ],
125
+ read: [
126
+ Permission.ProjectOwner,
127
+ Permission.ProjectAdmin,
128
+ Permission.ProjectMember,
129
+ Permission.Viewer,
130
+ Permission.TelemetryManager,
131
+ Permission.ReadProjectTraceScrubRule,
132
+ Permission.ReadAllProjectResources,
133
+ ],
134
+ update: [
135
+ Permission.ProjectOwner,
136
+ Permission.ProjectAdmin,
137
+ Permission.EditProjectTraceScrubRule,
138
+ ],
139
+ }),
140
+ TableColumn({
141
+ required: true,
142
+ type: TableColumnType.Name,
143
+ canReadOnRelationQuery: true,
144
+ title: "Name",
145
+ description: "Friendly name for this scrub rule.",
146
+ }),
147
+ Column({
148
+ nullable: false,
149
+ type: ColumnType.Name,
150
+ length: ColumnLength.Name,
151
+ }),
152
+ __metadata("design:type", String)
153
+ ], TraceScrubRule.prototype, "name", void 0);
154
+ __decorate([
155
+ ColumnAccessControl({
156
+ create: [
157
+ Permission.ProjectOwner,
158
+ Permission.ProjectAdmin,
159
+ Permission.CreateProjectTraceScrubRule,
160
+ ],
161
+ read: [
162
+ Permission.ProjectOwner,
163
+ Permission.ProjectAdmin,
164
+ Permission.ProjectMember,
165
+ Permission.Viewer,
166
+ Permission.TelemetryManager,
167
+ Permission.ReadProjectTraceScrubRule,
168
+ Permission.ReadAllProjectResources,
169
+ ],
170
+ update: [
171
+ Permission.ProjectOwner,
172
+ Permission.ProjectAdmin,
173
+ Permission.EditProjectTraceScrubRule,
174
+ ],
175
+ }),
176
+ TableColumn({
177
+ required: false,
178
+ type: TableColumnType.LongText,
179
+ canReadOnRelationQuery: true,
180
+ title: "Description",
181
+ description: "Description of what this scrub rule does.",
182
+ }),
183
+ Column({
184
+ nullable: true,
185
+ type: ColumnType.LongText,
186
+ length: ColumnLength.LongText,
187
+ }),
188
+ __metadata("design:type", String)
189
+ ], TraceScrubRule.prototype, "description", void 0);
190
+ __decorate([
191
+ ColumnAccessControl({
192
+ create: [
193
+ Permission.ProjectOwner,
194
+ Permission.ProjectAdmin,
195
+ Permission.CreateProjectTraceScrubRule,
196
+ ],
197
+ read: [
198
+ Permission.ProjectOwner,
199
+ Permission.ProjectAdmin,
200
+ Permission.ProjectMember,
201
+ Permission.Viewer,
202
+ Permission.TelemetryManager,
203
+ Permission.ReadProjectTraceScrubRule,
204
+ Permission.ReadAllProjectResources,
205
+ ],
206
+ update: [
207
+ Permission.ProjectOwner,
208
+ Permission.ProjectAdmin,
209
+ Permission.EditProjectTraceScrubRule,
210
+ ],
211
+ }),
212
+ TableColumn({
213
+ required: true,
214
+ type: TableColumnType.ShortText,
215
+ canReadOnRelationQuery: true,
216
+ title: "Pattern Type",
217
+ description: "The type of sensitive data pattern to detect: email, creditCard, ssn, phoneNumber, ipAddress, or custom.",
218
+ }),
219
+ Column({
220
+ nullable: false,
221
+ type: ColumnType.ShortText,
222
+ length: ColumnLength.ShortText,
223
+ }),
224
+ __metadata("design:type", String)
225
+ ], TraceScrubRule.prototype, "patternType", void 0);
226
+ __decorate([
227
+ ColumnAccessControl({
228
+ create: [
229
+ Permission.ProjectOwner,
230
+ Permission.ProjectAdmin,
231
+ Permission.CreateProjectTraceScrubRule,
232
+ ],
233
+ read: [
234
+ Permission.ProjectOwner,
235
+ Permission.ProjectAdmin,
236
+ Permission.ProjectMember,
237
+ Permission.Viewer,
238
+ Permission.TelemetryManager,
239
+ Permission.ReadProjectTraceScrubRule,
240
+ Permission.ReadAllProjectResources,
241
+ ],
242
+ update: [
243
+ Permission.ProjectOwner,
244
+ Permission.ProjectAdmin,
245
+ Permission.EditProjectTraceScrubRule,
246
+ ],
247
+ }),
248
+ TableColumn({
249
+ required: false,
250
+ type: TableColumnType.LongText,
251
+ canReadOnRelationQuery: true,
252
+ title: "Custom Regex",
253
+ description: "A custom regular expression pattern to match. Only used when patternType is 'custom'.",
254
+ }),
255
+ Column({
256
+ nullable: true,
257
+ type: ColumnType.LongText,
258
+ length: ColumnLength.LongText,
259
+ }),
260
+ __metadata("design:type", String)
261
+ ], TraceScrubRule.prototype, "customRegex", void 0);
262
+ __decorate([
263
+ ColumnAccessControl({
264
+ create: [
265
+ Permission.ProjectOwner,
266
+ Permission.ProjectAdmin,
267
+ Permission.CreateProjectTraceScrubRule,
268
+ ],
269
+ read: [
270
+ Permission.ProjectOwner,
271
+ Permission.ProjectAdmin,
272
+ Permission.ProjectMember,
273
+ Permission.Viewer,
274
+ Permission.TelemetryManager,
275
+ Permission.ReadProjectTraceScrubRule,
276
+ Permission.ReadAllProjectResources,
277
+ ],
278
+ update: [
279
+ Permission.ProjectOwner,
280
+ Permission.ProjectAdmin,
281
+ Permission.EditProjectTraceScrubRule,
282
+ ],
283
+ }),
284
+ TableColumn({
285
+ required: true,
286
+ type: TableColumnType.ShortText,
287
+ canReadOnRelationQuery: true,
288
+ title: "Scrub Action",
289
+ description: "How to scrub matched data: 'mask' partially hides it, 'hash' replaces with a hash, 'redact' removes entirely.",
290
+ }),
291
+ Column({
292
+ nullable: false,
293
+ type: ColumnType.ShortText,
294
+ length: ColumnLength.ShortText,
295
+ default: "redact",
296
+ }),
297
+ __metadata("design:type", String)
298
+ ], TraceScrubRule.prototype, "scrubAction", void 0);
299
+ __decorate([
300
+ ColumnAccessControl({
301
+ create: [
302
+ Permission.ProjectOwner,
303
+ Permission.ProjectAdmin,
304
+ Permission.CreateProjectTraceScrubRule,
305
+ ],
306
+ read: [
307
+ Permission.ProjectOwner,
308
+ Permission.ProjectAdmin,
309
+ Permission.ProjectMember,
310
+ Permission.Viewer,
311
+ Permission.TelemetryManager,
312
+ Permission.ReadProjectTraceScrubRule,
313
+ Permission.ReadAllProjectResources,
314
+ ],
315
+ update: [
316
+ Permission.ProjectOwner,
317
+ Permission.ProjectAdmin,
318
+ Permission.EditProjectTraceScrubRule,
319
+ ],
320
+ }),
321
+ TableColumn({
322
+ required: true,
323
+ type: TableColumnType.ShortText,
324
+ canReadOnRelationQuery: true,
325
+ title: "Fields to Scrub",
326
+ description: "Which span fields to scrub: 'name' (span name), 'attributes' (attribute values), 'events' (span event attributes), or 'all'.",
327
+ }),
328
+ Column({
329
+ nullable: false,
330
+ type: ColumnType.ShortText,
331
+ length: ColumnLength.ShortText,
332
+ default: "all",
333
+ }),
334
+ __metadata("design:type", String)
335
+ ], TraceScrubRule.prototype, "fieldsToScrub", void 0);
336
+ __decorate([
337
+ ColumnAccessControl({
338
+ create: [
339
+ Permission.ProjectOwner,
340
+ Permission.ProjectAdmin,
341
+ Permission.CreateProjectTraceScrubRule,
342
+ ],
343
+ read: [
344
+ Permission.ProjectOwner,
345
+ Permission.ProjectAdmin,
346
+ Permission.ProjectMember,
347
+ Permission.Viewer,
348
+ Permission.TelemetryManager,
349
+ Permission.ReadProjectTraceScrubRule,
350
+ Permission.ReadAllProjectResources,
351
+ ],
352
+ update: [
353
+ Permission.ProjectOwner,
354
+ Permission.ProjectAdmin,
355
+ Permission.EditProjectTraceScrubRule,
356
+ ],
357
+ }),
358
+ Index(),
359
+ TableColumn({
360
+ required: true,
361
+ type: TableColumnType.Boolean,
362
+ canReadOnRelationQuery: true,
363
+ title: "Enabled",
364
+ description: "Whether this scrub rule is active.",
365
+ defaultValue: true,
366
+ }),
367
+ Column({
368
+ nullable: false,
369
+ type: ColumnType.Boolean,
370
+ default: true,
371
+ }),
372
+ __metadata("design:type", Boolean)
373
+ ], TraceScrubRule.prototype, "isEnabled", void 0);
374
+ __decorate([
375
+ ColumnAccessControl({
376
+ create: [
377
+ Permission.ProjectOwner,
378
+ Permission.ProjectAdmin,
379
+ Permission.CreateProjectTraceScrubRule,
380
+ ],
381
+ read: [
382
+ Permission.ProjectOwner,
383
+ Permission.ProjectAdmin,
384
+ Permission.ProjectMember,
385
+ Permission.Viewer,
386
+ Permission.TelemetryManager,
387
+ Permission.ReadProjectTraceScrubRule,
388
+ Permission.ReadAllProjectResources,
389
+ ],
390
+ update: [
391
+ Permission.ProjectOwner,
392
+ Permission.ProjectAdmin,
393
+ Permission.EditProjectTraceScrubRule,
394
+ ],
395
+ }),
396
+ TableColumn({
397
+ title: "Sort Order",
398
+ required: false,
399
+ type: TableColumnType.Number,
400
+ canReadOnRelationQuery: true,
401
+ description: "Determines the evaluation order of this rule relative to others.",
402
+ defaultValue: 0,
403
+ }),
404
+ Column({
405
+ type: ColumnType.Number,
406
+ nullable: false,
407
+ default: 0,
408
+ }),
409
+ __metadata("design:type", Number)
410
+ ], TraceScrubRule.prototype, "sortOrder", void 0);
411
+ __decorate([
412
+ ColumnAccessControl({
413
+ create: [],
414
+ read: [
415
+ Permission.ProjectOwner,
416
+ Permission.ProjectAdmin,
417
+ Permission.ProjectMember,
418
+ Permission.Viewer,
419
+ Permission.TelemetryManager,
420
+ Permission.ReadProjectTraceScrubRule,
421
+ Permission.ReadAllProjectResources,
422
+ ],
423
+ update: [],
424
+ }),
425
+ TableColumn({
426
+ manyToOneRelationColumn: "createdByUserId",
427
+ type: TableColumnType.Entity,
428
+ modelType: User,
429
+ title: "Created By User",
430
+ description: "Relation to the user who created this trace scrub rule.",
431
+ }),
432
+ ManyToOne(() => {
433
+ return User;
434
+ }, {
435
+ eager: false,
436
+ nullable: true,
437
+ onDelete: "SET NULL",
438
+ orphanedRowAction: "nullify",
439
+ }),
440
+ JoinColumn({ name: "createdByUserId" }),
441
+ __metadata("design:type", User)
442
+ ], TraceScrubRule.prototype, "createdByUser", void 0);
443
+ __decorate([
444
+ ColumnAccessControl({
445
+ create: [],
446
+ read: [
447
+ Permission.ProjectOwner,
448
+ Permission.ProjectAdmin,
449
+ Permission.ProjectMember,
450
+ Permission.Viewer,
451
+ Permission.TelemetryManager,
452
+ Permission.ReadProjectTraceScrubRule,
453
+ Permission.ReadAllProjectResources,
454
+ ],
455
+ update: [],
456
+ }),
457
+ TableColumn({
458
+ type: TableColumnType.ObjectID,
459
+ title: "Created By User ID",
460
+ description: "ID of the user who created this trace scrub rule.",
461
+ }),
462
+ Column({
463
+ type: ColumnType.ObjectID,
464
+ nullable: true,
465
+ transformer: ObjectID.getDatabaseTransformer(),
466
+ }),
467
+ __metadata("design:type", ObjectID)
468
+ ], TraceScrubRule.prototype, "createdByUserId", void 0);
469
+ __decorate([
470
+ ColumnAccessControl({
471
+ create: [],
472
+ read: [
473
+ Permission.ProjectOwner,
474
+ Permission.ProjectAdmin,
475
+ Permission.ProjectMember,
476
+ Permission.Viewer,
477
+ Permission.TelemetryManager,
478
+ Permission.ReadProjectTraceScrubRule,
479
+ Permission.ReadAllProjectResources,
480
+ ],
481
+ update: [],
482
+ }),
483
+ TableColumn({
484
+ manyToOneRelationColumn: "deletedByUserId",
485
+ type: TableColumnType.Entity,
486
+ modelType: User,
487
+ title: "Deleted By User",
488
+ description: "Relation to the user who deleted this trace scrub rule.",
489
+ }),
490
+ ManyToOne(() => {
491
+ return User;
492
+ }, {
493
+ eager: false,
494
+ nullable: true,
495
+ onDelete: "SET NULL",
496
+ orphanedRowAction: "nullify",
497
+ }),
498
+ JoinColumn({ name: "deletedByUserId" }),
499
+ __metadata("design:type", User)
500
+ ], TraceScrubRule.prototype, "deletedByUser", void 0);
501
+ __decorate([
502
+ ColumnAccessControl({
503
+ create: [],
504
+ read: [
505
+ Permission.ProjectOwner,
506
+ Permission.ProjectAdmin,
507
+ Permission.ProjectMember,
508
+ Permission.Viewer,
509
+ Permission.TelemetryManager,
510
+ Permission.ReadProjectTraceScrubRule,
511
+ Permission.ReadAllProjectResources,
512
+ ],
513
+ update: [],
514
+ }),
515
+ TableColumn({
516
+ type: TableColumnType.ObjectID,
517
+ title: "Deleted By User ID",
518
+ description: "ID of the user who deleted this trace scrub rule.",
519
+ }),
520
+ Column({
521
+ type: ColumnType.ObjectID,
522
+ nullable: true,
523
+ transformer: ObjectID.getDatabaseTransformer(),
524
+ }),
525
+ __metadata("design:type", ObjectID)
526
+ ], TraceScrubRule.prototype, "deletedByUserId", void 0);
527
+ TraceScrubRule = __decorate([
528
+ EnableDocumentation(),
529
+ TableBillingAccessControl({
530
+ create: PlanType.Free,
531
+ read: PlanType.Free,
532
+ update: PlanType.Free,
533
+ delete: PlanType.Free,
534
+ }),
535
+ TenantColumn("projectId"),
536
+ CrudApiEndpoint(new Route("/trace-scrub-rule")),
537
+ Entity({
538
+ name: "TraceScrubRule",
539
+ }),
540
+ TableMetadata({
541
+ tableName: "TraceScrubRule",
542
+ singularName: "Trace Scrub Rule",
543
+ pluralName: "Trace Scrub Rules",
544
+ icon: IconProp.ShieldCheck,
545
+ tableDescription: "Configure rules to automatically detect and scrub sensitive data (PII) from spans at ingest time.",
546
+ }),
547
+ TableAccessControl({
548
+ create: [
549
+ Permission.ProjectOwner,
550
+ Permission.ProjectAdmin,
551
+ Permission.CreateProjectTraceScrubRule,
552
+ ],
553
+ read: [
554
+ Permission.ProjectOwner,
555
+ Permission.ProjectAdmin,
556
+ Permission.ProjectMember,
557
+ Permission.Viewer,
558
+ Permission.TelemetryManager,
559
+ Permission.ReadProjectTraceScrubRule,
560
+ Permission.ReadAllProjectResources,
561
+ ],
562
+ delete: [
563
+ Permission.ProjectOwner,
564
+ Permission.ProjectAdmin,
565
+ Permission.DeleteProjectTraceScrubRule,
566
+ ],
567
+ update: [
568
+ Permission.ProjectOwner,
569
+ Permission.ProjectAdmin,
570
+ Permission.EditProjectTraceScrubRule,
571
+ ],
572
+ })
573
+ ], TraceScrubRule);
574
+ export default TraceScrubRule;
575
+ //# sourceMappingURL=TraceScrubRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceScrubRule.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/TraceScrubRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import KubernetesResource from "../../Models/DatabaseModels/KubernetesResource";
2
+ import BadDataException from "../../Types/Exception/BadDataException";
3
+ import ObjectID from "../../Types/ObjectID";
4
+ import KubernetesResourceService from "../Services/KubernetesResourceService";
5
+ import KubernetesClusterService from "../Services/KubernetesClusterService";
6
+ import UserMiddleware from "../Middleware/UserAuthorization";
7
+ import Response from "../Utils/Response";
8
+ import BaseAPI from "./BaseAPI";
9
+ import CommonAPI from "./CommonAPI";
10
+ import NotFoundException from "../../Types/Exception/NotFoundException";
11
+ /*
12
+ * ------------------------------------------------------------------
13
+ * KubernetesResourceAPI
14
+ *
15
+ * Augments the auto-generated CRUD router with a single custom
16
+ * endpoint the Kubernetes overview page uses to fetch counts and
17
+ * health summaries in one round-trip:
18
+ *
19
+ * POST /kubernetes-resource/inventory-summary/:clusterId
20
+ *
21
+ * The standard CRUD endpoints (list / get) are still registered by
22
+ * BaseAPI; the UI uses them via ModelAPI for detail-page reads.
23
+ * Write endpoints reject (@TableAccessControl create/update/delete
24
+ * = []); ingest writes go through KubernetesResourceService as root.
25
+ * ------------------------------------------------------------------
26
+ */
27
+ export default class KubernetesResourceAPI extends BaseAPI {
28
+ constructor() {
29
+ var _a;
30
+ super(KubernetesResource, KubernetesResourceService);
31
+ this.router.post(`${(_a = new this.entityType()
32
+ .getCrudApiPath()) === null || _a === void 0 ? void 0 : _a.toString()}/inventory-summary/:clusterId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
33
+ try {
34
+ await this.getInventorySummary(req, res);
35
+ }
36
+ catch (err) {
37
+ next(err);
38
+ }
39
+ });
40
+ }
41
+ async getInventorySummary(req, res) {
42
+ const clusterIdParam = req.params["clusterId"];
43
+ if (!clusterIdParam) {
44
+ throw new BadDataException("Cluster ID is required");
45
+ }
46
+ let kubernetesClusterId;
47
+ try {
48
+ kubernetesClusterId = new ObjectID(clusterIdParam);
49
+ }
50
+ catch (_a) {
51
+ throw new BadDataException("Invalid Cluster ID");
52
+ }
53
+ const props = await CommonAPI.getDatabaseCommonInteractionProps(req);
54
+ /*
55
+ * Authorize: the caller must be able to read the parent cluster.
56
+ * findOneById applies the full ACL chain; a null return means 404
57
+ * (either the cluster doesn't exist or the caller cannot see it —
58
+ * indistinguishable on purpose).
59
+ */
60
+ const cluster = await KubernetesClusterService.findOneById({
61
+ id: kubernetesClusterId,
62
+ select: {
63
+ _id: true,
64
+ projectId: true,
65
+ },
66
+ props,
67
+ });
68
+ if (!cluster || !cluster.projectId) {
69
+ throw new NotFoundException("Kubernetes Cluster not found");
70
+ }
71
+ const summary = await this.service.getInventorySummary({
72
+ projectId: cluster.projectId,
73
+ kubernetesClusterId,
74
+ });
75
+ const responseBody = {
76
+ countsByKind: summary.countsByKind,
77
+ podPhaseCounts: summary.podPhaseCounts,
78
+ nodeReadyCounts: summary.nodeReadyCounts,
79
+ nodePressureCounts: summary.nodePressureCounts,
80
+ // Convenience fields so the UI doesn't have to repeat COALESCE:
81
+ pvcCount: summary.countsByKind["PersistentVolumeClaim"] || 0,
82
+ pvCount: summary.countsByKind["PersistentVolume"] || 0,
83
+ nodeCount: summary.countsByKind["Node"] || 0,
84
+ podCount: summary.countsByKind["Pod"] || 0,
85
+ namespaceCount: summary.countsByKind["Namespace"] || 0,
86
+ deploymentCount: summary.countsByKind["Deployment"] || 0,
87
+ statefulSetCount: summary.countsByKind["StatefulSet"] || 0,
88
+ daemonSetCount: summary.countsByKind["DaemonSet"] || 0,
89
+ jobCount: summary.countsByKind["Job"] || 0,
90
+ cronJobCount: summary.countsByKind["CronJob"] || 0,
91
+ hpaCount: summary.countsByKind["HorizontalPodAutoscaler"] || 0,
92
+ vpaCount: summary.countsByKind["VerticalPodAutoscaler"] || 0,
93
+ containerCount: summary.containerCount,
94
+ };
95
+ return Response.sendJsonObjectResponse(req, res, responseBody);
96
+ }
97
+ }
98
+ //# sourceMappingURL=KubernetesResourceAPI.js.map