@oneuptime/common 10.5.8 → 10.5.17

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 (118) hide show
  1. package/Models/AnalyticsModels/ExceptionInstance.ts +1 -1
  2. package/Models/AnalyticsModels/Log.ts +1 -1
  3. package/Models/AnalyticsModels/Metric.ts +1 -1
  4. package/Models/AnalyticsModels/Profile.ts +1 -1
  5. package/Models/AnalyticsModels/ProfileSample.ts +1 -1
  6. package/Models/AnalyticsModels/Span.ts +1 -1
  7. package/Models/DatabaseModels/SmsLog.ts +111 -0
  8. package/Models/DatabaseModels/TelemetryException.ts +46 -34
  9. package/Models/DatabaseModels/TelemetryUsageBilling.ts +35 -2
  10. package/Server/API/AIAgentDataAPI.ts +25 -7
  11. package/Server/API/DashboardAPI.ts +616 -0
  12. package/Server/API/TelemetryExceptionAPI.ts +6 -2
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1780317745887-AddDeliveryTrackingToSmsLog.ts +39 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1780381124553-MigrationName.ts +28 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1780382837019-MigrationName.ts +24 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1780387560604-MigrationName.ts +47 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1780388219225-MigrationName.ts +34 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  19. package/Server/Infrastructure/QueueWorker.ts +40 -1
  20. package/Server/Services/AnalyticsDatabaseService.ts +87 -0
  21. package/Server/Services/DatabaseService.ts +73 -0
  22. package/Server/Services/TelemetryExceptionService.ts +24 -49
  23. package/Server/Services/TelemetryUsageBillingService.ts +289 -166
  24. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +102 -72
  25. package/Server/Types/Database/Permissions/OwnedScopePermission.ts +81 -60
  26. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +67 -0
  27. package/Server/Utils/Logger.ts +12 -1
  28. package/Server/Utils/StartServer.ts +13 -5
  29. package/Server/Utils/Telemetry/ContextSpanProcessor.ts +48 -0
  30. package/Server/Utils/Telemetry/SpanUtil.ts +16 -35
  31. package/Server/Utils/Telemetry/TelemetryContext.ts +190 -0
  32. package/Server/Utils/Telemetry.ts +18 -2
  33. package/Types/Database/AccessControl/OwnedThrough.ts +31 -3
  34. package/Types/SmsStatus.ts +16 -0
  35. package/Types/Telemetry/ServiceType.ts +10 -0
  36. package/UI/Components/LogsViewer/LogsViewer.tsx +16 -0
  37. package/UI/Utils/Project.ts +6 -0
  38. package/UI/Utils/Telemetry/Telemetry.ts +65 -0
  39. package/UI/Utils/TelemetryService.ts +150 -0
  40. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +1 -1
  41. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  42. package/build/dist/Models/AnalyticsModels/Log.js +1 -1
  43. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  44. package/build/dist/Models/AnalyticsModels/Metric.js +1 -1
  45. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  46. package/build/dist/Models/AnalyticsModels/Profile.js +1 -1
  47. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  48. package/build/dist/Models/AnalyticsModels/ProfileSample.js +1 -1
  49. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  50. package/build/dist/Models/AnalyticsModels/Span.js +1 -1
  51. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  52. package/build/dist/Models/DatabaseModels/SmsLog.js +112 -0
  53. package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -1
  54. package/build/dist/Models/DatabaseModels/TelemetryException.js +47 -33
  55. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  56. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +36 -2
  57. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
  58. package/build/dist/Server/API/AIAgentDataAPI.js +24 -8
  59. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  60. package/build/dist/Server/API/DashboardAPI.js +459 -2
  61. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  62. package/build/dist/Server/API/TelemetryExceptionAPI.js +6 -2
  63. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  64. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780317745887-AddDeliveryTrackingToSmsLog.js +20 -0
  65. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780317745887-AddDeliveryTrackingToSmsLog.js.map +1 -0
  66. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780381124553-MigrationName.js +23 -0
  67. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780381124553-MigrationName.js.map +1 -0
  68. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780382837019-MigrationName.js +19 -0
  69. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780382837019-MigrationName.js.map +1 -0
  70. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780387560604-MigrationName.js +22 -0
  71. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780387560604-MigrationName.js.map +1 -0
  72. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780388219225-MigrationName.js +25 -0
  73. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780388219225-MigrationName.js.map +1 -0
  74. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  75. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  76. package/build/dist/Server/Infrastructure/QueueWorker.js +31 -1
  77. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  78. package/build/dist/Server/Services/AnalyticsDatabaseService.js +59 -0
  79. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  80. package/build/dist/Server/Services/DatabaseService.js +62 -0
  81. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  82. package/build/dist/Server/Services/TelemetryExceptionService.js +16 -41
  83. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  84. package/build/dist/Server/Services/TelemetryUsageBillingService.js +211 -147
  85. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  86. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +84 -63
  87. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  88. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +67 -49
  89. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
  90. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +51 -0
  91. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  92. package/build/dist/Server/Utils/Logger.js +8 -1
  93. package/build/dist/Server/Utils/Logger.js.map +1 -1
  94. package/build/dist/Server/Utils/StartServer.js +12 -4
  95. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  96. package/build/dist/Server/Utils/Telemetry/ContextSpanProcessor.js +37 -0
  97. package/build/dist/Server/Utils/Telemetry/ContextSpanProcessor.js.map +1 -0
  98. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +15 -24
  99. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
  100. package/build/dist/Server/Utils/Telemetry/TelemetryContext.js +124 -0
  101. package/build/dist/Server/Utils/Telemetry/TelemetryContext.js.map +1 -0
  102. package/build/dist/Server/Utils/Telemetry.js +12 -1
  103. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  104. package/build/dist/Types/Database/AccessControl/OwnedThrough.js +7 -2
  105. package/build/dist/Types/Database/AccessControl/OwnedThrough.js.map +1 -1
  106. package/build/dist/Types/SmsStatus.js +15 -0
  107. package/build/dist/Types/SmsStatus.js.map +1 -1
  108. package/build/dist/Types/Telemetry/ServiceType.js +10 -0
  109. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  110. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +15 -0
  111. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  112. package/build/dist/UI/Utils/Project.js +5 -0
  113. package/build/dist/UI/Utils/Project.js.map +1 -1
  114. package/build/dist/UI/Utils/Telemetry/Telemetry.js +44 -0
  115. package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
  116. package/build/dist/UI/Utils/TelemetryService.js +113 -0
  117. package/build/dist/UI/Utils/TelemetryService.js.map +1 -0
  118. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  import AIAgentService from "../Services/AIAgentService";
2
2
  import LlmProviderService from "../Services/LlmProviderService";
3
3
  import TelemetryExceptionService from "../Services/TelemetryExceptionService";
4
+ import ServiceService from "../Services/ServiceService";
4
5
  import ServiceCodeRepositoryService from "../Services/ServiceCodeRepositoryService";
5
6
  import CodeRepositoryService from "../Services/CodeRepositoryService";
6
7
  import AIAgentTaskPullRequestService from "../Services/AIAgentTaskPullRequestService";
@@ -68,7 +69,7 @@ export default class AIAgentDataAPI {
68
69
  });
69
70
  // Get exception details with telemetry service info
70
71
  this.router.post("/ai-agent-data/get-exception-details", async (req, res, next) => {
71
- var _a, _b, _c, _d;
72
+ var _a, _b;
72
73
  try {
73
74
  const data = req.body;
74
75
  // Validate AI Agent credentials
@@ -91,11 +92,7 @@ export default class AIAgentDataAPI {
91
92
  exceptionType: true,
92
93
  fingerprint: true,
93
94
  serviceId: true,
94
- service: {
95
- _id: true,
96
- name: true,
97
- description: true,
98
- },
95
+ serviceType: true,
99
96
  },
100
97
  props: {
101
98
  isRoot: true,
@@ -105,6 +102,25 @@ export default class AIAgentDataAPI {
105
102
  return Response.sendErrorResponse(req, res, new BadDataException("Exception not found"));
106
103
  }
107
104
  logger.debug(`Exception details fetched: ${exception._id} - ${(_a = exception.message) === null || _a === void 0 ? void 0 : _a.substring(0, 100)}`, getLogAttributesFromRequest(req));
105
+ /*
106
+ * serviceId is polymorphic — resolve the Service only when it is
107
+ * a real Service. findOneById returns null for Host / DockerHost /
108
+ * KubernetesCluster / unattributed serviceIds (they aren't
109
+ * Services), preserving the previous "name only for real
110
+ * services" behaviour without the dropped ORM relation.
111
+ */
112
+ const exceptionService = exception.serviceId
113
+ ? await ServiceService.findOneById({
114
+ id: exception.serviceId,
115
+ select: {
116
+ name: true,
117
+ description: true,
118
+ },
119
+ props: {
120
+ isRoot: true,
121
+ },
122
+ })
123
+ : null;
108
124
  return Response.sendJsonObjectResponse(req, res, {
109
125
  exception: {
110
126
  id: (_b = exception._id) === null || _b === void 0 ? void 0 : _b.toString(),
@@ -116,8 +132,8 @@ export default class AIAgentDataAPI {
116
132
  service: exception.serviceId
117
133
  ? {
118
134
  id: exception.serviceId.toString(),
119
- name: (_c = exception.service) === null || _c === void 0 ? void 0 : _c.name,
120
- description: (_d = exception.service) === null || _d === void 0 ? void 0 : _d.description,
135
+ name: exceptionService === null || exceptionService === void 0 ? void 0 : exceptionService.name,
136
+ description: exceptionService === null || exceptionService === void 0 ? void 0 : exceptionService.description,
121
137
  }
122
138
  : null,
123
139
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AIAgentDataAPI.js","sourceRoot":"","sources":["../../../../Server/API/AIAgentDataAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIAgentDataAPI.js","sourceRoot":"","sources":["../../../../Server/API/AIAgentDataAPI.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,194 @@ import { DASHBOARD_MASTER_PASSWORD_INVALID_MESSAGE } from "../../Types/Dashboard
15
15
  import JSONFunctions from "../../Types/JSONFunctions";
16
16
  import TelemetryAttributeService from "../Services/TelemetryAttributeService";
17
17
  import TelemetryType from "../../Types/Telemetry/TelemetryType";
18
+ import SortOrder from "../../Types/BaseDatabase/SortOrder";
19
+ import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
20
+ import MetricService from "../Services/MetricService";
21
+ import MetricTypeService from "../Services/MetricTypeService";
22
+ import PositiveNumber from "../../Types/PositiveNumber";
23
+ import Incident from "../../Models/DatabaseModels/Incident";
24
+ import Alert from "../../Models/DatabaseModels/Alert";
25
+ import Monitor from "../../Models/DatabaseModels/Monitor";
26
+ import Host from "../../Models/DatabaseModels/Host";
27
+ import KubernetesResource from "../../Models/DatabaseModels/KubernetesResource";
28
+ import DockerHost from "../../Models/DatabaseModels/DockerHost";
29
+ import DockerResource from "../../Models/DatabaseModels/DockerResource";
30
+ import Span from "../../Models/AnalyticsModels/Span";
31
+ import Log from "../../Models/AnalyticsModels/Log";
32
+ import IncidentService from "../Services/IncidentService";
33
+ import AlertService from "../Services/AlertService";
34
+ import MonitorService from "../Services/MonitorService";
35
+ import HostService from "../Services/HostService";
36
+ import KubernetesResourceService from "../Services/KubernetesResourceService";
37
+ import DockerHostService from "../Services/DockerHostService";
38
+ import DockerResourceService from "../Services/DockerResourceService";
39
+ import SpanService from "../Services/SpanService";
40
+ import LogService from "../Services/LogService";
41
+ const DEFAULT_DASHBOARD_RESOURCE_LIMIT = 100;
42
+ const PUBLIC_DASHBOARD_RESOURCES = {
43
+ incident: {
44
+ modelType: Incident,
45
+ service: IncidentService,
46
+ select: {
47
+ _id: true,
48
+ title: true,
49
+ createdAt: true,
50
+ currentIncidentState: { name: true, color: true },
51
+ incidentSeverity: { name: true, color: true },
52
+ },
53
+ },
54
+ alert: {
55
+ modelType: Alert,
56
+ service: AlertService,
57
+ select: {
58
+ _id: true,
59
+ title: true,
60
+ createdAt: true,
61
+ currentAlertState: { name: true, color: true },
62
+ alertSeverity: { name: true, color: true },
63
+ },
64
+ },
65
+ monitor: {
66
+ modelType: Monitor,
67
+ service: MonitorService,
68
+ select: {
69
+ _id: true,
70
+ name: true,
71
+ monitorType: true,
72
+ currentMonitorStatus: { name: true, color: true },
73
+ },
74
+ },
75
+ host: {
76
+ modelType: Host,
77
+ service: HostService,
78
+ select: {
79
+ _id: true,
80
+ name: true,
81
+ hostIdentifier: true,
82
+ otelCollectorStatus: true,
83
+ osType: true,
84
+ osVersion: true,
85
+ cpuCores: true,
86
+ totalMemoryBytes: true,
87
+ lastSeenAt: true,
88
+ },
89
+ },
90
+ "kubernetes-resource": {
91
+ modelType: KubernetesResource,
92
+ service: KubernetesResourceService,
93
+ select: {
94
+ _id: true,
95
+ name: true,
96
+ namespaceKey: true,
97
+ kind: true,
98
+ phase: true,
99
+ isReady: true,
100
+ hasMemoryPressure: true,
101
+ hasDiskPressure: true,
102
+ hasPidPressure: true,
103
+ containerCount: true,
104
+ latestCpuPercent: true,
105
+ latestMemoryBytes: true,
106
+ controllerDeploymentName: true,
107
+ controllerCronJobName: true,
108
+ resourceCreationTimestamp: true,
109
+ lastSeenAt: true,
110
+ kubernetesClusterId: true,
111
+ kubernetesCluster: { name: true },
112
+ },
113
+ },
114
+ "docker-host": {
115
+ modelType: DockerHost,
116
+ service: DockerHostService,
117
+ select: {
118
+ _id: true,
119
+ name: true,
120
+ otelCollectorStatus: true,
121
+ containersRunning: true,
122
+ containersStopped: true,
123
+ containersPaused: true,
124
+ osType: true,
125
+ osVersion: true,
126
+ },
127
+ },
128
+ "docker-container": {
129
+ modelType: DockerResource,
130
+ service: DockerResourceService,
131
+ select: {
132
+ _id: true,
133
+ name: true,
134
+ imageName: true,
135
+ state: true,
136
+ latestCpuPercent: true,
137
+ latestMemoryBytes: true,
138
+ dockerHostId: true,
139
+ dockerHost: { name: true },
140
+ },
141
+ },
142
+ "docker-image": {
143
+ modelType: DockerResource,
144
+ service: DockerResourceService,
145
+ select: {
146
+ _id: true,
147
+ name: true,
148
+ containerId: true,
149
+ dockerHostId: true,
150
+ dockerHost: { name: true },
151
+ },
152
+ },
153
+ "docker-network": {
154
+ modelType: DockerResource,
155
+ service: DockerResourceService,
156
+ select: {
157
+ _id: true,
158
+ name: true,
159
+ state: true,
160
+ dockerHostId: true,
161
+ dockerHost: { name: true },
162
+ },
163
+ },
164
+ "docker-volume": {
165
+ modelType: DockerResource,
166
+ service: DockerResourceService,
167
+ select: {
168
+ _id: true,
169
+ name: true,
170
+ state: true,
171
+ dockerHostId: true,
172
+ dockerHost: { name: true },
173
+ },
174
+ },
175
+ span: {
176
+ modelType: Span,
177
+ service: SpanService,
178
+ select: {
179
+ startTime: true,
180
+ name: true,
181
+ statusCode: true,
182
+ durationUnixNano: true,
183
+ traceId: true,
184
+ spanId: true,
185
+ kind: true,
186
+ serviceId: true,
187
+ },
188
+ },
189
+ log: {
190
+ modelType: Log,
191
+ service: LogService,
192
+ select: {
193
+ time: true,
194
+ severityText: true,
195
+ body: true,
196
+ serviceId: true,
197
+ traceId: true,
198
+ spanId: true,
199
+ attributes: true,
200
+ },
201
+ },
202
+ };
18
203
  export default class DashboardAPI extends BaseAPI {
19
204
  constructor() {
20
- var _a, _b, _c, _d, _e, _f;
205
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
21
206
  super(Dashboard, DashboardService);
22
207
  // SEO endpoint - resolve dashboard by ID or domain
23
208
  this.router.get(`${(_a = new this.entityType()
@@ -278,8 +463,190 @@ export default class DashboardAPI extends BaseAPI {
278
463
  next(err);
279
464
  }
280
465
  });
466
+ /*
467
+ * Public metric-type lookup for dashboard charts.
468
+ *
469
+ * The private `/metric-type/get-list` CRUD route requires a logged-in
470
+ * session with Telemetry read permission; public dashboards have no
471
+ * session, so the shared chart code used to fall through to it, 401 →
472
+ * the global API error handler redirected the viewer to /accounts/login.
473
+ * Mirror it here scoped to the dashboard's owning projectId.
474
+ * Authorization reuses DashboardService.hasReadAccess (public flag, IP
475
+ * whitelist, master password) — never falls back to project-wide read.
476
+ */
281
477
  this.router.post(`${(_f = new this.entityType()
282
- .getCrudApiPath()) === null || _f === void 0 ? void 0 : _f.toString()}/master-password/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
478
+ .getCrudApiPath()) === null || _f === void 0 ? void 0 : _f.toString()}/metric-types/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
479
+ try {
480
+ const dashboardId = new ObjectID(req.params["dashboardId"]);
481
+ const accessResult = await DashboardService.hasReadAccess({
482
+ dashboardId,
483
+ req,
484
+ });
485
+ if (!accessResult.hasReadAccess) {
486
+ throw (accessResult.error ||
487
+ new BadDataException("Access denied to this dashboard."));
488
+ }
489
+ const dashboard = await DashboardService.findOneById({
490
+ id: dashboardId,
491
+ select: {
492
+ _id: true,
493
+ projectId: true,
494
+ dashboardViewConfig: true,
495
+ },
496
+ props: {
497
+ isRoot: true,
498
+ },
499
+ });
500
+ if (!dashboard || !dashboard.projectId) {
501
+ throw new NotFoundException("Dashboard not found");
502
+ }
503
+ /*
504
+ * Only expose metric types the dashboard actually charts, so a
505
+ * public viewer cannot enumerate the owning project's full metric
506
+ * catalog.
507
+ */
508
+ const allowedMetricNames = DashboardAPI.collectDashboardMetricNames(dashboard.dashboardViewConfig);
509
+ if (allowedMetricNames.size === 0) {
510
+ return Response.sendJsonObjectResponse(req, res, {
511
+ metricTypes: [],
512
+ });
513
+ }
514
+ const metricTypes = await MetricTypeService.findBy({
515
+ query: {
516
+ projectId: dashboard.projectId,
517
+ },
518
+ select: {
519
+ name: true,
520
+ unit: true,
521
+ },
522
+ skip: 0,
523
+ limit: LIMIT_PER_PROJECT,
524
+ sort: {
525
+ name: SortOrder.Ascending,
526
+ },
527
+ props: {
528
+ isRoot: true,
529
+ },
530
+ });
531
+ return Response.sendJsonObjectResponse(req, res, {
532
+ metricTypes: metricTypes
533
+ .filter((metricType) => {
534
+ return Boolean(metricType.name && allowedMetricNames.has(metricType.name));
535
+ })
536
+ .map((metricType) => {
537
+ return {
538
+ name: metricType.name || "",
539
+ unit: metricType.unit || "",
540
+ };
541
+ }),
542
+ });
543
+ }
544
+ catch (err) {
545
+ next(err);
546
+ }
547
+ });
548
+ /*
549
+ * Public metric aggregation for dashboard charts/values/gauges/tables.
550
+ *
551
+ * Mirrors the private `/metrics/aggregate` route (which requires a
552
+ * logged-in session). The client-supplied projectId is IGNORED and the
553
+ * aggregation is pinned to the dashboard's owning projectId, so a public
554
+ * viewer can only read metrics belonging to this dashboard's project and
555
+ * never another tenant's. Authorization reuses
556
+ * DashboardService.hasReadAccess.
557
+ */
558
+ this.router.post(`${(_g = new this.entityType()
559
+ .getCrudApiPath()) === null || _g === void 0 ? void 0 : _g.toString()}/metrics-aggregate/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
560
+ try {
561
+ const dashboardId = new ObjectID(req.params["dashboardId"]);
562
+ const accessResult = await DashboardService.hasReadAccess({
563
+ dashboardId,
564
+ req,
565
+ });
566
+ if (!accessResult.hasReadAccess) {
567
+ throw (accessResult.error ||
568
+ new BadDataException("Access denied to this dashboard."));
569
+ }
570
+ if (!req.body || !req.body["aggregateBy"]) {
571
+ throw new BadDataException("aggregateBy is required.");
572
+ }
573
+ const dashboard = await DashboardService.findOneById({
574
+ id: dashboardId,
575
+ select: {
576
+ _id: true,
577
+ projectId: true,
578
+ dashboardViewConfig: true,
579
+ },
580
+ props: {
581
+ isRoot: true,
582
+ },
583
+ });
584
+ if (!dashboard || !dashboard.projectId) {
585
+ throw new NotFoundException("Dashboard not found");
586
+ }
587
+ const aggregateBy = Object.assign(Object.assign({}, JSONFunctions.deserialize(req.body["aggregateBy"])), {
588
+ /*
589
+ * Run as root: authorization is already enforced by hasReadAccess
590
+ * above and the project scope is pinned below.
591
+ */
592
+ props: {
593
+ isRoot: true,
594
+ } });
595
+ /*
596
+ * Restrict aggregation to the metric names this dashboard actually
597
+ * charts. Without this, a public viewer who knows the dashboard ID
598
+ * could aggregate any metric in the owning project. Variable
599
+ * interpolation only rewrites attribute filters, never the metric
600
+ * name, so the stored view config is an exact allowlist.
601
+ */
602
+ const allowedMetricNames = DashboardAPI.collectDashboardMetricNames(dashboard.dashboardViewConfig);
603
+ const requestedMetricName = aggregateBy.query
604
+ ? aggregateBy.query["name"]
605
+ : undefined;
606
+ if (typeof requestedMetricName !== "string" ||
607
+ !allowedMetricNames.has(requestedMetricName)) {
608
+ throw new BadDataException("This metric is not part of this dashboard.");
609
+ }
610
+ /*
611
+ * Security: never trust a client-supplied projectId on a public,
612
+ * unauthenticated endpoint. Pin the aggregation to the dashboard's
613
+ * project before it reaches the database service.
614
+ */
615
+ aggregateBy.query = Object.assign(Object.assign({}, (aggregateBy.query || {})), { projectId: dashboard.projectId });
616
+ const aggregateResult = await MetricService.aggregateBy(aggregateBy);
617
+ const responseBody = Object.assign({}, aggregateResult);
618
+ return Response.sendJsonObjectResponse(req, res, responseBody);
619
+ }
620
+ catch (err) {
621
+ next(err);
622
+ }
623
+ });
624
+ /*
625
+ * Public resource lists for non-metric dashboard widgets (incident /
626
+ * alert / monitor / trace / log / kubernetes / docker / host lists).
627
+ *
628
+ * Each widget renders a fixed set of columns; the server pins the select
629
+ * to exactly those columns (see PUBLIC_DASHBOARD_RESOURCES) and forces the
630
+ * project scope to the dashboard's project, so a public viewer can only
631
+ * read the data the widget was built to show, for this dashboard's
632
+ * project. Authorization reuses DashboardService.hasReadAccess.
633
+ */
634
+ this.router.post(`${(_h = new this.entityType()
635
+ .getCrudApiPath()) === null || _h === void 0 ? void 0 : _h.toString()}/resource-list/:dashboardId/:resourceType`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
636
+ try {
637
+ const resourceType = req.params["resourceType"];
638
+ const config = PUBLIC_DASHBOARD_RESOURCES[resourceType];
639
+ if (!config) {
640
+ throw new BadDataException(`Unsupported dashboard resource type: ${resourceType}`);
641
+ }
642
+ await DashboardAPI.servePublicResourceList({ req, res, config });
643
+ }
644
+ catch (err) {
645
+ next(err);
646
+ }
647
+ });
648
+ this.router.post(`${(_j = new this.entityType()
649
+ .getCrudApiPath()) === null || _j === void 0 ? void 0 : _j.toString()}/master-password/:dashboardId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
283
650
  try {
284
651
  if (!req.params["dashboardId"]) {
285
652
  throw new BadDataException("Dashboard ID not found");
@@ -326,6 +693,96 @@ export default class DashboardAPI extends BaseAPI {
326
693
  }
327
694
  });
328
695
  }
696
+ /*
697
+ * Walk a stored dashboard view config and collect every metric name it
698
+ * references (chart/value/gauge/table widgets all carry their metric in a
699
+ * `metricName` field somewhere under their query config). Used to build an
700
+ * allowlist for the public metric endpoints so an anonymous viewer can only
701
+ * read the metrics this dashboard was built to show.
702
+ */
703
+ static collectDashboardMetricNames(dashboardViewConfig) {
704
+ const metricNames = new Set();
705
+ const walk = (node) => {
706
+ if (!node || typeof node !== "object") {
707
+ return;
708
+ }
709
+ if (Array.isArray(node)) {
710
+ for (const item of node) {
711
+ walk(item);
712
+ }
713
+ return;
714
+ }
715
+ const obj = node;
716
+ const metricName = obj["metricName"];
717
+ if (typeof metricName === "string" && metricName.trim().length > 0) {
718
+ metricNames.add(metricName);
719
+ }
720
+ for (const key of Object.keys(obj)) {
721
+ walk(obj[key]);
722
+ }
723
+ };
724
+ walk(dashboardViewConfig);
725
+ return metricNames;
726
+ }
727
+ /*
728
+ * Shared handler for the public resource-list endpoint. Loads the
729
+ * dashboard, enforces read access, pins the query to the dashboard's
730
+ * project, and lists the resource using the registry's FIXED select.
731
+ */
732
+ static async servePublicResourceList(data) {
733
+ const { req, res, config } = data;
734
+ const dashboardId = new ObjectID(req.params["dashboardId"]);
735
+ const accessResult = await DashboardService.hasReadAccess({ dashboardId, req });
736
+ if (!accessResult.hasReadAccess) {
737
+ throw (accessResult.error ||
738
+ new BadDataException("Access denied to this dashboard."));
739
+ }
740
+ const dashboard = await DashboardService.findOneById({
741
+ id: dashboardId,
742
+ select: {
743
+ _id: true,
744
+ projectId: true,
745
+ },
746
+ props: {
747
+ isRoot: true,
748
+ },
749
+ });
750
+ if (!dashboard || !dashboard.projectId) {
751
+ throw new NotFoundException("Dashboard not found");
752
+ }
753
+ const query = req.body && req.body["query"]
754
+ ? JSONFunctions.deserialize(req.body["query"])
755
+ : {};
756
+ /*
757
+ * Security: pin to the dashboard's project; never trust a client-supplied
758
+ * projectId on a public, unauthenticated endpoint.
759
+ */
760
+ query["projectId"] = dashboard.projectId;
761
+ const sort = req.body && req.body["sort"]
762
+ ? JSONFunctions.deserialize(req.body["sort"])
763
+ : {};
764
+ const requestedLimit = req.query["limit"]
765
+ ? parseInt(req.query["limit"], 10)
766
+ : DEFAULT_DASHBOARD_RESOURCE_LIMIT;
767
+ const limit = Math.min(Number.isFinite(requestedLimit) && requestedLimit > 0
768
+ ? requestedLimit
769
+ : DEFAULT_DASHBOARD_RESOURCE_LIMIT, LIMIT_PER_PROJECT);
770
+ const requestedSkip = req.query["skip"]
771
+ ? parseInt(req.query["skip"], 10)
772
+ : 0;
773
+ const skip = Number.isFinite(requestedSkip) && requestedSkip > 0 ? requestedSkip : 0;
774
+ const list = await config.service.findBy({
775
+ query: query,
776
+ select: config.select,
777
+ sort: sort,
778
+ limit: limit,
779
+ skip: skip,
780
+ props: {
781
+ isRoot: true,
782
+ },
783
+ });
784
+ return Response.sendEntityArrayResponse(req, res, list, new PositiveNumber(list.length), config.modelType);
785
+ }
329
786
  static getFileAsBase64JSONObject(file) {
330
787
  if (!file || !file.file) {
331
788
  return null;