@oneuptime/common 12.0.3 → 12.0.4

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 (173) hide show
  1. package/Models/DatabaseModels/CephCluster.ts +14 -0
  2. package/Models/DatabaseModels/CodeRepository.ts +14 -6
  3. package/Models/DatabaseModels/DockerHost.ts +14 -0
  4. package/Models/DatabaseModels/GlobalOidcProject.ts +18 -0
  5. package/Models/DatabaseModels/GlobalSsoProject.ts +18 -0
  6. package/Models/DatabaseModels/IoTFleet.ts +14 -0
  7. package/Models/DatabaseModels/KubernetesCluster.ts +14 -0
  8. package/Models/DatabaseModels/NetworkDevice.ts +14 -0
  9. package/Models/DatabaseModels/NetworkInterface.ts +18 -0
  10. package/Models/DatabaseModels/Project.ts +16 -2
  11. package/Models/DatabaseModels/ProxmoxCluster.ts +14 -0
  12. package/Models/DatabaseModels/Service.ts +30 -0
  13. package/Models/DatabaseModels/StatusPagePrivateUser.ts +30 -0
  14. package/Models/DatabaseModels/User.ts +30 -0
  15. package/Server/API/AIAgentDataAPI.ts +31 -0
  16. package/Server/API/DashboardAPI.ts +419 -12
  17. package/Server/API/GitHubAPI.ts +119 -283
  18. package/Server/API/UserAPI.ts +263 -1
  19. package/Server/EnvironmentConfig.ts +7 -3
  20. package/Server/Infrastructure/GlobalCache.ts +37 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.ts +21 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.ts +68 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +100 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.ts +214 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.ts +69 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  27. package/Server/Services/AnalyticsDatabaseService.ts +72 -1
  28. package/Server/Services/CodeRepositoryService.ts +105 -2
  29. package/Server/Services/DatabaseService.ts +185 -2
  30. package/Server/Services/OpenTelemetryIngestService.ts +230 -26
  31. package/Server/Services/UserService.ts +184 -0
  32. package/Server/Utils/AI/Toolbox/CodeTools.ts +45 -4
  33. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +13 -0
  34. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +157 -4
  35. package/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.ts +130 -0
  36. package/Server/Utils/PasswordHash.ts +306 -0
  37. package/Tests/App/Dashboard/OverviewCustomFields.test.tsx +333 -0
  38. package/Tests/App/Dashboard/UserCustomFields.test.tsx +392 -0
  39. package/Tests/Server/API/AIAgentDataRepositoryToken.test.ts +381 -0
  40. package/Tests/Server/API/DashboardPublicAttributeValuesAPI.test.ts +943 -0
  41. package/Tests/Server/API/DashboardPublicMetricsAggregateAPI.test.ts +1296 -0
  42. package/Tests/Server/API/DashboardPublicTemplatePayloads.test.ts +598 -0
  43. package/Tests/Server/API/GitHubAppInstallationBindingAPI.test.ts +539 -0
  44. package/Tests/Server/API/Helpers.ts +6 -1
  45. package/Tests/Server/API/UserProjectsAPI.test.ts +852 -0
  46. package/Tests/Server/Infrastructure/GlobalCache.test.ts +128 -0
  47. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +215 -0
  48. package/Tests/Server/Services/AddPerUserPasswordSaltMigration.test.ts +178 -0
  49. package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +582 -0
  50. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +5 -0
  51. package/Tests/Server/Services/CodeRepositoryInstallationBinding.test.ts +305 -0
  52. package/Tests/Server/Services/CodeRepositoryResolutionBinding.test.ts +147 -0
  53. package/Tests/Server/Services/DatabaseServicePerUserPasswordSalt.test.ts +870 -0
  54. package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +568 -0
  55. package/Tests/Server/Services/RestoreDroppedUniqueIndexesMigration.test.ts +386 -0
  56. package/Tests/Server/Services/RestoreServiceLowerNameIndexMigration.test.ts +240 -0
  57. package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +885 -0
  58. package/Tests/Server/Services/WidenHashedStringColumnsForScryptMigration.test.ts +220 -0
  59. package/Tests/Server/Utils/AI/CodeTools.test.ts +47 -1
  60. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +10 -0
  61. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +120 -0
  62. package/Tests/Server/Utils/CodeRepository/GitHubInstallationBinding.test.ts +292 -0
  63. package/Tests/Server/Utils/GitHubInstallationOwnershipVerification.test.ts +340 -0
  64. package/Tests/Server/Utils/GitHubWebhookAndTreeCacheIsolation.test.ts +250 -0
  65. package/Tests/Server/Utils/PasswordHash.test.ts +555 -0
  66. package/Tests/Types/Database/ColumnLength.test.ts +7 -1
  67. package/Tests/Types/HashedStringPerUserSalt.test.ts +476 -0
  68. package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +293 -0
  69. package/Tests/Types/Monitor/HostAlertTemplates.test.ts +249 -0
  70. package/Tests/Types/Monitor/IotAlertTemplates.test.ts +320 -0
  71. package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +271 -0
  72. package/Tests/UI/Components/CustomFields/CustomFieldsDetail.test.tsx +696 -0
  73. package/Tests/UI/Utils/UserProjectsModelAPI.test.ts +714 -0
  74. package/Tests/Utils/TeamMembersByProject.test.ts +655 -0
  75. package/Types/Database/ColumnLength.ts +9 -1
  76. package/Types/Database/TableColumn.ts +11 -0
  77. package/Types/Database/UnsynchronizedIndex.ts +48 -0
  78. package/Types/HashedString.ts +139 -4
  79. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +85 -11
  80. package/UI/Components/Navbar/NavBar.tsx +12 -2
  81. package/UI/Components/Navbar/NavBarMenuModal.tsx +19 -7
  82. package/UI/Utils/ModelAPI/UserProjectsModelAPI.ts +257 -0
  83. package/Utils/TeamMembersByProject.ts +237 -0
  84. package/build/dist/Models/DatabaseModels/CephCluster.js +16 -1
  85. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  86. package/build/dist/Models/DatabaseModels/CodeRepository.js +14 -6
  87. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  88. package/build/dist/Models/DatabaseModels/DockerHost.js +16 -1
  89. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  90. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +16 -1
  91. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -1
  92. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +16 -1
  93. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -1
  94. package/build/dist/Models/DatabaseModels/IoTFleet.js +16 -1
  95. package/build/dist/Models/DatabaseModels/IoTFleet.js.map +1 -1
  96. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +16 -1
  97. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  98. package/build/dist/Models/DatabaseModels/NetworkDevice.js +16 -1
  99. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  100. package/build/dist/Models/DatabaseModels/NetworkInterface.js +16 -1
  101. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  102. package/build/dist/Models/DatabaseModels/Project.js +16 -2
  103. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  104. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +16 -1
  105. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  106. package/build/dist/Models/DatabaseModels/Service.js +28 -1
  107. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  108. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +32 -0
  109. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
  110. package/build/dist/Models/DatabaseModels/User.js +32 -0
  111. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  112. package/build/dist/Server/API/AIAgentDataAPI.js +21 -2
  113. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  114. package/build/dist/Server/API/DashboardAPI.js +304 -10
  115. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  116. package/build/dist/Server/API/GitHubAPI.js +94 -167
  117. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  118. package/build/dist/Server/API/UserAPI.js +187 -2
  119. package/build/dist/Server/API/UserAPI.js.map +1 -1
  120. package/build/dist/Server/EnvironmentConfig.js +7 -3
  121. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  122. package/build/dist/Server/Infrastructure/GlobalCache.js +29 -0
  123. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  124. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js +14 -0
  125. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js.map +1 -0
  126. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js +59 -0
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js.map +1 -0
  128. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js +93 -0
  129. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js.map +1 -0
  130. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js +101 -0
  131. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js.map +1 -0
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js +66 -0
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js.map +1 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  136. package/build/dist/Server/Services/AnalyticsDatabaseService.js +57 -1
  137. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  138. package/build/dist/Server/Services/CodeRepositoryService.js +90 -2
  139. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
  140. package/build/dist/Server/Services/DatabaseService.js +160 -2
  141. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  142. package/build/dist/Server/Services/OpenTelemetryIngestService.js +155 -25
  143. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  144. package/build/dist/Server/Services/UserService.js +165 -0
  145. package/build/dist/Server/Services/UserService.js.map +1 -1
  146. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +31 -1
  147. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -1
  148. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +13 -0
  149. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  150. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +126 -4
  151. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  152. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js +136 -0
  153. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js.map +1 -0
  154. package/build/dist/Server/Utils/PasswordHash.js +237 -0
  155. package/build/dist/Server/Utils/PasswordHash.js.map +1 -0
  156. package/build/dist/Types/Database/ColumnLength.js +9 -1
  157. package/build/dist/Types/Database/ColumnLength.js.map +1 -1
  158. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  159. package/build/dist/Types/Database/UnsynchronizedIndex.js +46 -0
  160. package/build/dist/Types/Database/UnsynchronizedIndex.js.map +1 -0
  161. package/build/dist/Types/HashedString.js +95 -5
  162. package/build/dist/Types/HashedString.js.map +1 -1
  163. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +51 -10
  164. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  165. package/build/dist/UI/Components/Navbar/NavBar.js +3 -1
  166. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  167. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +19 -7
  168. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  169. package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js +156 -0
  170. package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js.map +1 -0
  171. package/build/dist/Utils/TeamMembersByProject.js +145 -0
  172. package/build/dist/Utils/TeamMembersByProject.js.map +1 -0
  173. package/package.json +1 -1
@@ -76,6 +76,47 @@ const PROJECT_RETENTION_CACHE_NAMESPACE = "project-retention-context";
76
76
  */
77
77
  const PROJECT_RETENTION_CACHE_TTL_SECONDS = 5 * 60;
78
78
  const projectRetentionInProcessCache = new Map();
79
+ /*
80
+ * Per-process memo for `service.name` -> Service resolution, backed by the same
81
+ * L1-Map + L2-Redis pair as the project retention context above.
82
+ *
83
+ * This is the hot read on the whole ingest path and it was the one ungated
84
+ * operation in the function. `resolveTelemetryResource` calls it once per OTLP
85
+ * *resource*, not per request — the shipped host-metrics collector config
86
+ * produces hundreds per batch — and again for every signal type a collector
87
+ * exports, from every ingest pod. The per-batch `serviceDictionary` in the four
88
+ * Otel*IngestService files cannot help: it is written AFTER this resolves and
89
+ * never read before it.
90
+ *
91
+ * The uncached read was also the most expensive shape it could have been.
92
+ * `QueryHelper.findWithSameText` emits `LOWER("Service"."name") = $2`, and the
93
+ * live indexes on Service are all over the RAW name column
94
+ * (IDX_80cd6d06b0ab8fbce9fea6d3bc on ("projectId","name")), so Postgres can use
95
+ * only the `projectId` prefix as an index qual and must then heap-fetch and
96
+ * filter every service in the project. Cost per call is O(services in project),
97
+ * not O(log n). The matching expression index existed once —
98
+ * `("projectId", LOWER("name")) WHERE "deletedAt" IS NULL` in migration
99
+ * 1774559064921 — and was dropped as collateral damage by autogenerated
100
+ * migration 1775735059360. Restoring it is a separate change; this cache is
101
+ * what removes the calls in the first place.
102
+ */
103
+ const SERVICE_RESOLUTION_CACHE_NAMESPACE = "service-resolution";
104
+ /*
105
+ * Matches the project-retention TTL deliberately: the two are read together on
106
+ * every resolution and there is no value in them expiring at different times.
107
+ *
108
+ * Staleness is bounded rather than invalidated, exactly as it is for project
109
+ * retention. A retention change made in the UI takes up to this long to affect
110
+ * newly ingested rows, and a service deleted in the UI keeps resolving for up
111
+ * to this long — which stamps `primaryEntityId` values into ClickHouse that no
112
+ * longer have a Postgres parent. Those rows are orphaned, not corrupt (the
113
+ * analytics side has no FK to Service) and they age out via retention; this is
114
+ * the same trade-off the dedupe migration already documents for its own
115
+ * ClickHouse rows. Cross-process invalidation would need pub/sub, which
116
+ * GlobalCache has no primitive for.
117
+ */
118
+ const SERVICE_RESOLUTION_CACHE_TTL_SECONDS = 5 * 60;
119
+ const serviceResolutionInProcessCache = new Map();
79
120
  export default class OTelIngestService {
80
121
  /*
81
122
  * Read a single string-valued OTel resource attribute out of the raw
@@ -261,6 +302,78 @@ export default class OTelIngestService {
261
302
  }
262
303
  return result;
263
304
  }
305
+ /*
306
+ * Normalises exactly as `QueryHelper.findWithSameText` does
307
+ * (`toLowerCase().trim()`). This has to stay in lockstep with that helper:
308
+ * if the key kept casing or surrounding whitespace that the SQL predicate
309
+ * folds away, two spellings of one `service.name` would occupy two cache
310
+ * entries pointing at the same row, and a batch could miss the entry the
311
+ * previous batch just wrote.
312
+ */
313
+ static getServiceResolutionCacheKey(projectId, serviceName) {
314
+ return `${projectId.toString()}:${serviceName.toLowerCase().trim()}`;
315
+ }
316
+ static async getCachedServiceResolution(cacheKey) {
317
+ var _a, _b;
318
+ const now = Date.now();
319
+ // L1: in-process memo. Zero network cost.
320
+ const memoed = serviceResolutionInProcessCache.get(cacheKey);
321
+ if (memoed && memoed.expiresAtMs > now) {
322
+ return memoed.resolution;
323
+ }
324
+ // L2: Redis. Single round-trip; shared across workers.
325
+ try {
326
+ const cached = await GlobalCache.getJSONObject(SERVICE_RESOLUTION_CACHE_NAMESPACE, cacheKey);
327
+ /*
328
+ * `serviceId` is the load-bearing field — a cached entry without one
329
+ * cannot produce a `primaryEntityId`, so treat it as a miss and let the
330
+ * caller re-resolve rather than stamping rows with a broken id.
331
+ */
332
+ if (cached && cached["serviceId"]) {
333
+ const resolution = {
334
+ serviceId: String(cached["serviceId"]),
335
+ retainTelemetryDataForDays: (_a = cached["retainTelemetryDataForDays"]) !== null && _a !== void 0 ? _a : null,
336
+ telemetryRetentionConfig: (_b = cached["telemetryRetentionConfig"]) !== null && _b !== void 0 ? _b : null,
337
+ };
338
+ serviceResolutionInProcessCache.set(cacheKey, {
339
+ resolution,
340
+ expiresAtMs: now + SERVICE_RESOLUTION_CACHE_TTL_SECONDS * 1000,
341
+ });
342
+ return resolution;
343
+ }
344
+ }
345
+ catch (err) {
346
+ // Cache outage must never fail ingest. Fall through to Postgres.
347
+ logger.warn(`Service resolution cache read failed for "${cacheKey}"; falling back to Postgres: ${err instanceof Error ? err.message : String(err)}`);
348
+ }
349
+ return null;
350
+ }
351
+ static async cacheServiceResolution(cacheKey, resolution) {
352
+ var _a;
353
+ serviceResolutionInProcessCache.set(cacheKey, {
354
+ resolution,
355
+ expiresAtMs: Date.now() + SERVICE_RESOLUTION_CACHE_TTL_SECONDS * 1000,
356
+ });
357
+ try {
358
+ await GlobalCache.setJSON(SERVICE_RESOLUTION_CACHE_NAMESPACE, cacheKey, {
359
+ serviceId: resolution.serviceId,
360
+ retainTelemetryDataForDays: resolution.retainTelemetryDataForDays,
361
+ telemetryRetentionConfig: ((_a = resolution.telemetryRetentionConfig) !== null && _a !== void 0 ? _a : null),
362
+ }, { expiresInSeconds: SERVICE_RESOLUTION_CACHE_TTL_SECONDS });
363
+ }
364
+ catch (err) {
365
+ // Best-effort warm. Don't fail the request.
366
+ logger.warn(`Service resolution cache write failed for "${cacheKey}": ${err instanceof Error ? err.message : String(err)}`);
367
+ }
368
+ }
369
+ static toServiceResolution(service) {
370
+ var _a, _b;
371
+ return {
372
+ serviceId: service.id.toString(),
373
+ retainTelemetryDataForDays: (_a = service.retainTelemetryDataForDays) !== null && _a !== void 0 ? _a : null,
374
+ telemetryRetentionConfig: (_b = service.telemetryRetentionConfig) !== null && _b !== void 0 ? _b : null,
375
+ };
376
+ }
264
377
  static async findOrCreateTelemetryService(data) {
265
378
  /*
266
379
  * Sort by createdAt ASC for deterministic resolution if the
@@ -279,23 +392,31 @@ export default class OTelIngestService {
279
392
  * Stored casing is preserved: service-detail pages key telemetry by the
280
393
  * stable primaryEntityId, and the name is user-facing.
281
394
  */
282
- const service = await ServiceService.findOneBy({
283
- query: {
284
- projectId: data.projectId,
285
- name: QueryHelper.findWithSameText(data.serviceName),
286
- },
287
- select: {
288
- _id: true,
289
- retainTelemetryDataForDays: true,
290
- telemetryRetentionConfig: true,
291
- },
292
- sort: {
293
- createdAt: SortOrder.Ascending,
294
- },
295
- props: {
296
- isRoot: true,
297
- },
298
- });
395
+ const resolutionCacheKey = this.getServiceResolutionCacheKey(data.projectId, data.serviceName);
396
+ let resolution = await this.getCachedServiceResolution(resolutionCacheKey);
397
+ if (!resolution) {
398
+ const service = await ServiceService.findOneBy({
399
+ query: {
400
+ projectId: data.projectId,
401
+ name: QueryHelper.findWithSameText(data.serviceName),
402
+ },
403
+ select: {
404
+ _id: true,
405
+ retainTelemetryDataForDays: true,
406
+ telemetryRetentionConfig: true,
407
+ },
408
+ sort: {
409
+ createdAt: SortOrder.Ascending,
410
+ },
411
+ props: {
412
+ isRoot: true,
413
+ },
414
+ });
415
+ if (service) {
416
+ resolution = this.toServiceResolution(service);
417
+ await this.cacheServiceResolution(resolutionCacheKey, resolution);
418
+ }
419
+ }
299
420
  const projectContext = await this.getProjectRetentionContext(data.projectId);
300
421
  /*
301
422
  * The service's own membership key (pure hash, no DB round trip), so
@@ -304,12 +425,12 @@ export default class OTelIngestService {
304
425
  * entity set in `resolveTelemetryResource`.
305
426
  */
306
427
  const serviceEntityKey = keyForService(data.projectId.toString(), data.serviceName);
307
- const buildMetadata = (svc) => {
428
+ const buildMetadata = (resolved) => {
308
429
  var _a, _b;
309
- const serviceLevelRetention = (_a = svc.retainTelemetryDataForDays) !== null && _a !== void 0 ? _a : null;
430
+ const serviceLevelRetention = (_a = resolved.retainTelemetryDataForDays) !== null && _a !== void 0 ? _a : null;
310
431
  return {
311
432
  serviceName: data.serviceName,
312
- primaryEntityId: svc.id,
433
+ primaryEntityId: new ObjectID(resolved.serviceId),
313
434
  primaryEntityType: ServiceType.OpenTelemetry,
314
435
  entityKeys: [serviceEntityKey],
315
436
  /*
@@ -319,13 +440,13 @@ export default class OTelIngestService {
319
440
  */
320
441
  scalarEntityKeys: Object.assign(Object.assign({}, emptyScalarEntityKeys()), { serviceEntityKey: serviceEntityKey }),
321
442
  dataRententionInDays: serviceLevelRetention || projectContext.projectRetentionInDays,
322
- serviceRetentionConfig: (_b = svc.telemetryRetentionConfig) !== null && _b !== void 0 ? _b : null,
443
+ serviceRetentionConfig: (_b = resolved.telemetryRetentionConfig) !== null && _b !== void 0 ? _b : null,
323
444
  serviceRetentionInDays: serviceLevelRetention,
324
445
  projectRetentionConfig: projectContext.projectRetentionConfig,
325
446
  projectRetentionInDays: projectContext.projectRetentionInDays,
326
447
  };
327
448
  };
328
- if (!service) {
449
+ if (!resolution) {
329
450
  try {
330
451
  const newService = new Service();
331
452
  newService.projectId = data.projectId;
@@ -337,12 +458,19 @@ export default class OTelIngestService {
337
458
  isRoot: true,
338
459
  },
339
460
  });
340
- return buildMetadata(createdService);
461
+ const createdResolution = this.toServiceResolution(createdService);
462
+ await this.cacheServiceResolution(resolutionCacheKey, createdResolution);
463
+ return buildMetadata(createdResolution);
341
464
  }
342
465
  catch (_a) {
343
466
  /*
344
467
  * Race condition: another request created the service concurrently.
345
468
  * Re-fetch the existing service (oldest wins, see sort above).
469
+ *
470
+ * This refetch emits SQL byte-identical to the lookup above, so it is
471
+ * indistinguishable from it in pg_stat_activity — caching the result
472
+ * here matters as much as caching it there. A first-contact stampede
473
+ * on a brand-new service.name is exactly when this branch runs hot.
346
474
  */
347
475
  const existingService = await ServiceService.findOneBy({
348
476
  query: {
@@ -362,12 +490,14 @@ export default class OTelIngestService {
362
490
  },
363
491
  });
364
492
  if (existingService) {
365
- return buildMetadata(existingService);
493
+ const existingResolution = this.toServiceResolution(existingService);
494
+ await this.cacheServiceResolution(resolutionCacheKey, existingResolution);
495
+ return buildMetadata(existingResolution);
366
496
  }
367
497
  throw new Error("Failed to create or find service: " + data.serviceName);
368
498
  }
369
499
  }
370
- return buildMetadata(service);
500
+ return buildMetadata(resolution);
371
501
  }
372
502
  /*
373
503
  * Builds a TelemetryServiceMetadata for a non-Service resource —
@@ -1 +1 @@
1
- {"version":3,"file":"OpenTelemetryIngestService.js","sourceRoot":"","sources":["../../../../Server/Services/OpenTelemetryIngestService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenTelemetryIngestService.js","sourceRoot":"","sources":["../../../../Server/Services/OpenTelemetryIngestService.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ import Route from "../../Types/API/Route";
23
23
  import URL from "../../Types/API/URL";
24
24
  import LIMIT_MAX from "../../Types/Database/LimitMax";
25
25
  import OneUptimeDate from "../../Types/Date";
26
+ import ProjectService from "./ProjectService";
27
+ import Semaphore from "../Infrastructure/Semaphore";
26
28
  import Email from "../../Types/Email";
27
29
  import EmailTemplateType from "../../Types/Email/EmailTemplateType";
28
30
  import HashedString from "../../Types/HashedString";
@@ -37,6 +39,33 @@ import UserWebAuthnService from "./UserWebAuthnService";
37
39
  import BadDataException from "../../Types/Exception/BadDataException";
38
40
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
39
41
  import InMemoryTTLCache from "../Infrastructure/InMemoryTTLCache";
42
+ /*
43
+ * Names the Redis mutex that serializes the first-Master-Admin election across
44
+ * every process on this instance. Namespaced the same way as the other
45
+ * cross-process mutexes in this codebase (see ProjectService's counter locks)
46
+ * so the key is self-documenting in Redis and cannot collide with another lock.
47
+ */
48
+ const FIRST_MASTER_ADMIN_ELECTION_LOCK_NAMESPACE = "UserService.firstMasterAdminElection";
49
+ const FIRST_MASTER_ADMIN_ELECTION_LOCK_KEY = "instance";
50
+ /*
51
+ * How long the mutex survives without being refreshed. This is a crash bound,
52
+ * NOT a work budget: redis-semaphore refreshes an held lock every
53
+ * 0.8 * lockTimeout for as long as the holder is alive, so a slow COUNT+INSERT
54
+ * does not expire the lock out from under itself. It only matters when a holder
55
+ * dies mid-election (SIGKILL, eviction) — the lock then frees itself after this
56
+ * long instead of wedging every subsequent signup on the instance forever.
57
+ */
58
+ const FIRST_MASTER_ADMIN_ELECTION_LOCK_TIMEOUT_MS = 10000;
59
+ /*
60
+ * How long a signup waits for the lock before giving up. Signup is a
61
+ * user-facing request, so the wait has to be bounded rather than indefinite —
62
+ * this replaces the bound that Postgres `lock_timeout` used to give us.
63
+ *
64
+ * Failing the signup is the correct outcome when it fires: refusing to serve
65
+ * one request is safe, serving it unserialized is exactly the bug this lock
66
+ * exists to prevent (GHSA-3qqq-hprx-g2jw).
67
+ */
68
+ const FIRST_MASTER_ADMIN_ELECTION_ACQUIRE_TIMEOUT_MS = 5000;
40
69
  export class Service extends DatabaseService {
41
70
  constructor() {
42
71
  super(Model);
@@ -392,6 +421,136 @@ export class Service extends DatabaseService {
392
421
  }
393
422
  return onUpdate;
394
423
  }
424
+ /**
425
+ * Creates a user who is signing themselves up, and decides — atomically —
426
+ * whether they are the instance's very first Master Admin.
427
+ *
428
+ * Every signup MUST come through here rather than calling `create` directly,
429
+ * because this method is the only place that is allowed to set
430
+ * `isMasterAdmin` on a self-service signup. It always assigns the column, so
431
+ * an `isMasterAdmin: true` smuggled into the request body is overwritten
432
+ * rather than honoured (signup creates with `isRoot: true`, which bypasses
433
+ * the column's empty `create: []` access control).
434
+ */
435
+ async createUserOnSignup(data) {
436
+ // Never inherited from the caller. Decided below, or not at all.
437
+ data.user.isMasterAdmin = false;
438
+ if (IsBillingEnabled) {
439
+ /*
440
+ * On the hosted service there is no first-user bootstrap: master admins
441
+ * are provisioned out of band, so there is nothing to elect and no reason
442
+ * to take a lock.
443
+ */
444
+ return await this.create({
445
+ data: data.user,
446
+ props: data.props,
447
+ });
448
+ }
449
+ /*
450
+ * Self-hosted: the first user to sign up bootstraps the instance as Master
451
+ * Admin. The eligibility check reads the User table and the create writes to
452
+ * it, which is a read-then-write and therefore not atomic on its own — two
453
+ * signups landing together both counted zero users and both became Master
454
+ * Admin (GHSA-3qqq-hprx-g2jw). Serialize the check and the insert
455
+ * instance-wide so the second request observes the first one's row.
456
+ *
457
+ * The mutex is the Redis one every other cross-process critical section in
458
+ * this codebase uses (Semaphore), not a Postgres advisory lock. It holds no
459
+ * database connection and no open transaction, so serializing signups
460
+ * cannot pin a pooled backend `idle in transaction`, and it is unaffected
461
+ * by how PgBouncer is pooling.
462
+ */
463
+ let mutex;
464
+ try {
465
+ mutex = await Semaphore.lock({
466
+ key: FIRST_MASTER_ADMIN_ELECTION_LOCK_KEY,
467
+ namespace: FIRST_MASTER_ADMIN_ELECTION_LOCK_NAMESPACE,
468
+ lockTimeout: FIRST_MASTER_ADMIN_ELECTION_LOCK_TIMEOUT_MS,
469
+ acquireTimeout: FIRST_MASTER_ADMIN_ELECTION_ACQUIRE_TIMEOUT_MS,
470
+ });
471
+ }
472
+ catch (err) {
473
+ /*
474
+ * Redis unreachable, or the lock stayed contended past the acquire
475
+ * timeout. Fail the signup rather than fall back to an unserialized
476
+ * election — the fallback is the vulnerability.
477
+ */
478
+ logger.error("Refusing to create a signup: could not acquire the first-Master-Admin election lock.");
479
+ logger.error(err);
480
+ throw err;
481
+ }
482
+ /*
483
+ * The critical section deliberately covers the INSERT, not just the count:
484
+ * releasing after the count would let the next holder count a table the
485
+ * winner had not written to yet, which is the same race with extra steps.
486
+ *
487
+ * `finally` so a failed create still frees the lock immediately instead of
488
+ * blocking every other signup until lockTimeout elapses.
489
+ */
490
+ try {
491
+ data.user.isMasterAdmin = await this.isInstanceAwaitingFirstUser();
492
+ return await this.create({
493
+ data: data.user,
494
+ props: data.props,
495
+ });
496
+ }
497
+ finally {
498
+ try {
499
+ await Semaphore.release(mutex);
500
+ }
501
+ catch (err) {
502
+ /*
503
+ * Best-effort and non-masking: an error here must not replace the
504
+ * outcome of the signup, and an unreleased lock still expires on its
505
+ * own after lockTimeout.
506
+ */
507
+ logger.error("Failed to release the first-Master-Admin election lock; it will expire on its own.");
508
+ logger.error(err);
509
+ }
510
+ }
511
+ }
512
+ /**
513
+ * Is this a brand-new instance that nobody has ever signed up to — i.e. may
514
+ * the next user through the door take Master Admin?
515
+ *
516
+ * Only ever called while holding the first-Master-Admin election mutex.
517
+ */
518
+ async isInstanceAwaitingFirstUser() {
519
+ const userCount = await this.countBy({
520
+ props: {
521
+ isRoot: true,
522
+ },
523
+ query: {},
524
+ });
525
+ if (!userCount.isZero()) {
526
+ return false;
527
+ }
528
+ /*
529
+ * Zero users, but projects exist: this is not a fresh install, it is an
530
+ * instance whose User table was emptied out from under it — a bad restore, a
531
+ * cleanup script, a cascade. Handing Master Admin to whoever signs up next
532
+ * would be a free promotion for a stranger, so refuse and make the operator
533
+ * grant it deliberately.
534
+ *
535
+ * This cannot fire on any supported path: a user who belongs to a project
536
+ * cannot be deleted (see onBeforeDelete), so "projects with no users at all"
537
+ * is only reachable by writing to the database directly. It does not get in
538
+ * the way of the ordinary recovery either — someone who signs up, has no
539
+ * projects yet, deletes their account and signs up again still bootstraps
540
+ * normally.
541
+ */
542
+ const projectCount = await ProjectService.countBy({
543
+ props: {
544
+ isRoot: true,
545
+ },
546
+ query: {},
547
+ });
548
+ if (!projectCount.isZero()) {
549
+ logger.warn("Refusing to grant Master Admin to a new signup: the User table is empty but this instance already has projects. Grant Master Admin explicitly instead.");
550
+ return false;
551
+ }
552
+ return true;
553
+ }
395
554
  async createByEmail(data) {
396
555
  const { email, props } = data;
397
556
  const user = new Model();
@@ -493,6 +652,12 @@ __decorate([
493
652
  __metadata("design:paramtypes", [Object, Array]),
494
653
  __metadata("design:returntype", Promise)
495
654
  ], Service.prototype, "onUpdateSuccess", null);
655
+ __decorate([
656
+ CaptureSpan(),
657
+ __metadata("design:type", Function),
658
+ __metadata("design:paramtypes", [Object]),
659
+ __metadata("design:returntype", Promise)
660
+ ], Service.prototype, "createUserOnSignup", null);
496
661
  __decorate([
497
662
  CaptureSpan(),
498
663
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../../Server/Services/UserService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../../Server/Services/UserService.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import TelemetryExceptionService from "../../../Services/TelemetryExceptionServi
10
10
  import GitHubUtil from "../../CodeRepository/GitHub/GitHub";
11
11
  import { normalizeCandidatePath, } from "../../CodeRepository/StackTraceRepoResolver";
12
12
  import logger from "../../Logger";
13
+ import GitHubInstallationBinding from "../../CodeRepository/GitHub/GitHubInstallationBinding";
13
14
  import StackTraceParser from "../../Telemetry/StackTraceParser";
14
15
  import ToolResultSerializer from "./Serializer";
15
16
  import { ToolArgs, } from "./ToolTypes";
@@ -92,6 +93,7 @@ export async function findReadableRepositories(ctx, codeRepositoryId) {
92
93
  query: query,
93
94
  select: {
94
95
  _id: true,
96
+ projectId: true,
95
97
  name: true,
96
98
  organizationName: true,
97
99
  repositoryName: true,
@@ -104,10 +106,38 @@ export async function findReadableRepositories(ctx, codeRepositoryId) {
104
106
  skip: 0,
105
107
  props: ctx.props,
106
108
  });
107
- return repositories.filter((repository) => {
109
+ const gitHubRepositories = repositories.filter((repository) => {
108
110
  return (repository.repositoryHostedAt === CodeRepositoryType.GitHub &&
109
111
  Boolean(repository.gitHubAppInstallationId));
110
112
  });
113
+ /*
114
+ * Every code tool — read and write — resolves its target through here, so
115
+ * this is the one place that has to prove the row's installation really
116
+ * belongs to the row's project (GHSA-xx95-gmcf-7q86). "The row is in your
117
+ * project" is not that proof: before the fix a caller could put any
118
+ * installation ID on a row in a project they owned, and these tools would
119
+ * then read source, commit and open pull requests in another tenant's
120
+ * private repositories.
121
+ *
122
+ * Writing an unbound installation ID is closed off now and the quarantine
123
+ * migration clears the rows that already existed, so this filter should
124
+ * never drop anything on a healthy database. It stays because the cost of
125
+ * being wrong here is another tenant's source code.
126
+ */
127
+ if (gitHubRepositories.length === 0) {
128
+ return gitHubRepositories;
129
+ }
130
+ // Every row here is in ctx.projectId, so one lookup answers for all of them.
131
+ const boundInstallationId = await GitHubInstallationBinding.getBoundInstallationId(ctx.projectId);
132
+ return gitHubRepositories.filter((repository) => {
133
+ var _a;
134
+ if (boundInstallationId &&
135
+ repository.gitHubAppInstallationId === boundInstallationId) {
136
+ return true;
137
+ }
138
+ logger.error(`Excluding code repository ${(_a = repository.id) === null || _a === void 0 ? void 0 : _a.toString()} from AI code tools: its GitHub App installation is not bound to project ${ctx.projectId.toString()}.`);
139
+ return false;
140
+ });
111
141
  }
112
142
  /*
113
143
  * Resolve the one repository a tool call should act on. Ambiguity is an error