@oneuptime/common 11.5.7 → 11.5.8

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 (30) hide show
  1. package/Models/DatabaseModels/AIRun.ts +31 -0
  2. package/Server/API/CodeFixRunAPI.ts +25 -74
  3. package/Server/Infrastructure/Postgres/SchemaMigrations/1784105912819-BackfillCodeFixTaskType.ts +41 -0
  4. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  5. package/Server/Middleware/MasterAdminAuthorization.ts +1 -1
  6. package/Server/Middleware/ProjectAuthorization.ts +1 -1
  7. package/Server/Services/AIRunService.ts +10 -11
  8. package/Server/Utils/AI/AIRunPrivacyFilter.ts +106 -0
  9. package/Tests/Server/Utils/AI/AIRunPrivacyFilter.test.ts +295 -0
  10. package/Types/Email/EmailTemplateType.ts +2 -0
  11. package/UI/Components/EditionLabel/EditionLabel.tsx +821 -331
  12. package/build/dist/Models/DatabaseModels/AIRun.js +31 -0
  13. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  14. package/build/dist/Server/API/CodeFixRunAPI.js +25 -53
  15. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
  16. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784105912819-BackfillCodeFixTaskType.js +36 -0
  17. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784105912819-BackfillCodeFixTaskType.js.map +1 -0
  18. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  19. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  20. package/build/dist/Server/Middleware/MasterAdminAuthorization.js +1 -1
  21. package/build/dist/Server/Middleware/ProjectAuthorization.js +1 -1
  22. package/build/dist/Server/Services/AIRunService.js +10 -3
  23. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  24. package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.js +82 -0
  25. package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.js.map +1 -0
  26. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  27. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  28. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +424 -139
  29. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  30. package/package.json +1 -1
@@ -58,7 +58,7 @@ export default class ProjectMiddleware {
58
58
  * (Admin Dashboard → Settings → API Key) and that key is currently enabled.
59
59
  * The master key has root/master-admin access, so this is shared with
60
60
  * MasterAdminAuthorization to let the key reach master-admin-only endpoints
61
- * (e.g. instance health) as well.
61
+ * (e.g. OneUptime Health) as well.
62
62
  */
63
63
  static async isMasterApiKey(apiKey) {
64
64
  /*
@@ -16,7 +16,7 @@ import SortOrder from "../../Types/BaseDatabase/SortOrder";
16
16
  import QueryHelper from "../Types/Database/QueryHelper";
17
17
  import DatabaseService from "./DatabaseService";
18
18
  import Model from "../../Models/DatabaseModels/AIRun";
19
- import { pinQueryToRequestingUser } from "../Utils/AI/AIChatPrivacyFilter";
19
+ import { applyAIRunPrivacyFilter } from "../Utils/AI/AIRunPrivacyFilter";
20
20
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
21
21
  export class Service extends DatabaseService {
22
22
  constructor() {
@@ -246,11 +246,18 @@ export class Service extends DatabaseService {
246
246
  return { runId: run.id, verdict: data.verdict };
247
247
  }
248
248
  async onBeforeFind(findBy) {
249
- findBy.query = pinQueryToRequestingUser(findBy.query, findBy.props, "userId");
249
+ findBy.query = applyAIRunPrivacyFilter(findBy.query, findBy.props);
250
250
  return { findBy, carryForward: null };
251
251
  }
252
+ /*
253
+ * countBy MUST repeat the filter. DatabaseService has no onBeforeCount hook
254
+ * (only onCountSuccess / onCountError), and BaseAPI.getList issues findBy
255
+ * and countBy with the SAME client query, so filtering in onBeforeFind alone
256
+ * would return a correctly-scoped list beside an unscoped project-wide
257
+ * count on every page. IncidentService repeats it for the same reason.
258
+ */
252
259
  async countBy(countBy) {
253
- countBy.query = pinQueryToRequestingUser(countBy.query, countBy.props, "userId");
260
+ countBy.query = applyAIRunPrivacyFilter(countBy.query, countBy.props);
254
261
  return super.countBy(countBy);
255
262
  }
256
263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIRunService.js","sourceRoot":"","sources":["../../../../Server/Services/AIRunService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIRunService.js","sourceRoot":"","sources":["../../../../Server/Services/AIRunService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import NotAuthorizedException from "../../../Types/Exception/NotAuthorizedException";
2
+ import AIRunType from "../../../Types/AI/AIRunType";
3
+ import Text from "../../../Types/Text";
4
+ import { combineWithPrivacyClause } from "../PrivacyFilterUtil";
5
+ import { Raw } from "typeorm";
6
+ /*
7
+ * AIRun mixes two kinds of row under one table:
8
+ *
9
+ * - Chat and investigation runs are PERSONAL. They hang off a conversation
10
+ * and carry the user's own prompt trail, so only their author may read
11
+ * them. This is what AIChatPrivacyFilter's flat pin protects, and that pin
12
+ * stays exactly as it is for AIConversation, AIConversationMessage and
13
+ * AIRunEvent.
14
+ * - CodeFix runs are a SHARED TEAM ARTIFACT: they are triggered off an
15
+ * exception or an incident, they produce a pull request, and their child
16
+ * AIAgentTaskPullRequest rows are already project-readable through the
17
+ * standard CRUD. `userId` on a CodeFix run is attribution only (who
18
+ * clicked "Fix with AI Agent") and is null for automatic triggers — it
19
+ * carries no conversational content.
20
+ *
21
+ * So AIRun cannot use that flat pin. It needs `runType = CodeFix OR userId =
22
+ * <caller>`, a CROSS-COLUMN disjunction, which a query object cannot express
23
+ * (query objects are conjunctions).
24
+ *
25
+ * The clause below is built ENTIRELY from server state and AND-ed onto the
26
+ * caller's query. It never READS query.runType to decide anything — that
27
+ * would be unsound, because onBeforeFind runs BEFORE QueryUtil.serializeQuery,
28
+ * so query.runType here is still a raw, client-controlled operator object
29
+ * whose .value/.toString() are identical across the safe and hostile cases:
30
+ * LessThan("CodeFix") stringifies to exactly "CodeFix" but compiles to
31
+ * `runType < 'CodeFix'`, which matches "Chat". Because the clause is forced, a
32
+ * caller-supplied runType filter can only ever NARROW it, and
33
+ * combineWithPrivacyClause fails closed on operator shapes it does not
34
+ * recognize.
35
+ *
36
+ * Modelled on Utils/Incident/IncidentPrivacyFilter, which solves the same
37
+ * "unrestricted rows for everyone, restricted rows only for their owner"
38
+ * shape.
39
+ */
40
+ export function getAIRunPrivacyRaw(props) {
41
+ if (props.isRoot || props.isMasterAdmin) {
42
+ return undefined;
43
+ }
44
+ /*
45
+ * The same hard gate the flat pin has, and it must stay. A caller with no
46
+ * user — a project API key, which gets userTenantAccessPermission but never
47
+ * userAuthorization (see ProjectAuthorization), so props.userId is
48
+ * undefined — has no personal scope. Today such a caller cannot read AIRun
49
+ * at all. Letting CodeFix rows through here would hand every API key holding
50
+ * ProjectMember the project's whole fix history: access that neither
51
+ * /ai-run nor /code-fix-run grants today. That is a separate product
52
+ * decision and must not ride in as a side effect of this filter.
53
+ */
54
+ if (!props.userId) {
55
+ throw new NotAuthorizedException("AI runs are personal and can only be accessed by the user who created them.");
56
+ }
57
+ const userIdRid = "aiRunUid_" + Text.generateRandomText(10);
58
+ const runTypeRid = "aiRunType_" + Text.generateRandomText(10);
59
+ return Raw((alias) => {
60
+ return `(${alias} = :${runTypeRid} OR "AIRun"."userId" = :${userIdRid})`;
61
+ }, {
62
+ [runTypeRid]: AIRunType.CodeFix,
63
+ [userIdRid]: props.userId.toString(),
64
+ });
65
+ }
66
+ /*
67
+ * Applies the clause above on AIRun.runType. Project isolation is unaffected:
68
+ * @TenantColumn("projectId") independently forces projectId = <tenant>, so
69
+ * "CodeFix runs are readable" always means "in YOUR project".
70
+ */
71
+ export function applyAIRunPrivacyFilter(query, props) {
72
+ const rawClause = getAIRunPrivacyRaw(props);
73
+ if (!rawClause) {
74
+ return query;
75
+ }
76
+ if (!query) {
77
+ return { runType: rawClause };
78
+ }
79
+ query.runType = combineWithPrivacyClause(query.runType, rawClause);
80
+ return query;
81
+ }
82
+ //# sourceMappingURL=AIRunPrivacyFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIRunPrivacyFilter.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/AIRunPrivacyFilter.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AACrF,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAC9B,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAW,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,UAAU,GAAW,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEtE,OAAO,GAAG,CACR,CAAC,KAAa,EAAU,EAAE;QACxB,OAAO,IAAI,KAAK,OAAO,UAAU,2BAA2B,SAAS,GAAG,CAAC;IAC3E,CAAC,EACD;QACE,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,OAAO;QAC/B,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;KACrC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,KAAqC;IAErC,MAAM,SAAS,GACb,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,SAAS,EAAuB,CAAC;IACrD,CAAC;IAEA,KAAa,CAAC,OAAO,GAAG,wBAAwB,CAC9C,KAAa,CAAC,OAAO,EACtB,SAAS,CACV,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -77,6 +77,7 @@ var EmailTemplateType;
77
77
  EmailTemplateType["UserNoLongerActiveOnOnCallRoster"] = "UserNoLongerActiveOnOnCallRoster.hbs";
78
78
  EmailTemplateType["ProjectSubscriptionOverdue"] = "ProjectSubscriptionOverdue.hbs";
79
79
  EmailTemplateType["Invoice"] = "Invoice.hbs";
80
+ EmailTemplateType["ClickhouseCapacityWarning"] = "ClickhouseCapacityWarning.hbs";
80
81
  })(EmailTemplateType || (EmailTemplateType = {}));
81
82
  export default EmailTemplateType;
82
83
  //# sourceMappingURL=EmailTemplateType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailTemplateType.js","sourceRoot":"","sources":["../../../../Types/Email/EmailTemplateType.ts"],"names":[],"mappings":"AAAA,IAAK,iBAsFJ;AAtFD,WAAK,iBAAiB;IACpB,wDAAmC,CAAA;IACnC,0DAAqC,CAAA;IACrC,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,oFAA+D,CAAA;IAC/D,wFAAmE,CAAA;IACnE,gEAA2C,CAAA;IAC3C,wFAAmE,CAAA;IACnE,wDAAmC,CAAA;IACnC,4DAAuC,CAAA;IACvC,4DAAuC,CAAA;IACvC,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,0EAAqD,CAAA;IACrD,wFAAmE,CAAA;IACnE,gFAA2D,CAAA;IAC3D,oGAA+E,CAAA;IAC/E,kFAA6D,CAAA;IAC7D,wFAAmE,CAAA;IACnE,0FAAqE,CAAA;IACrE,kHAA6F,CAAA;IAC7F,0HAAqG,CAAA;IACrG,4HAAuG,CAAA;IACvG,8EAAyD,CAAA;IACzD,gFAA2D,CAAA;IAC3D,0EAAqD,CAAA;IACrD,0HAAqG,CAAA;IACrG,8CAAyB,CAAA;IACzB,gEAA2C,CAAA;IAC3C,oFAA+D,CAAA;IAC/D,oEAA+C,CAAA;IAC/C,gFAA2D,CAAA;IAE3D,kEAA6C,CAAA;IAC7C,gFAA2D,CAAA;IAC3D,4EAAuD,CAAA;IACvD,sFAAiE,CAAA;IACjE,oEAA+C,CAAA;IAC/C,4FAAuE,CAAA;IAEvE,4DAAuC,CAAA;IACvC,0EAAqD,CAAA;IACrD,sEAAiD,CAAA;IACjD,gFAA2D,CAAA;IAC3D,sFAAiE,CAAA;IAEjE,0EAAqD,CAAA;IACrD,wFAAmE,CAAA;IACnE,oFAA+D,CAAA;IAC/D,8FAAyE,CAAA;IACzE,oFAA+D,CAAA;IAE/D,gFAA2D,CAAA;IAC3D,8FAAyE,CAAA;IACzE,0FAAqE,CAAA;IACrE,oGAA+E,CAAA;IAC/E,gGAA2E,CAAA;IAE3E,8EAAyD,CAAA;IACzD,wFAAmE,CAAA;IACnE,sFAAiE,CAAA;IAEjE,oGAA+E,CAAA;IAC/E,0FAAqE,CAAA;IACrE,wGAAmF,CAAA;IACnF,8GAAyF,CAAA;IACzF,oHAA+F,CAAA;IAC/F,0FAAqE,CAAA;IACrE,sEAAiD,CAAA;IACjD,gGAA2E,CAAA;IAC3E,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,oEAA+C,CAAA;IAC/C,8DAAyC,CAAA;IACzC,4EAAuD,CAAA;IACvD,kFAA6D,CAAA;IAE7D,4EAAuD,CAAA;IACvD,oFAA+D,CAAA;IAC/D,oFAA+D,CAAA;IAC/D,0EAAqD,CAAA;IACrD,8FAAyE,CAAA;IAEzE,kFAA6D,CAAA;IAC7D,4CAAuB,CAAA;AACzB,CAAC,EAtFI,iBAAiB,KAAjB,iBAAiB,QAsFrB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"EmailTemplateType.js","sourceRoot":"","sources":["../../../../Types/Email/EmailTemplateType.ts"],"names":[],"mappings":"AAAA,IAAK,iBAwFJ;AAxFD,WAAK,iBAAiB;IACpB,wDAAmC,CAAA;IACnC,0DAAqC,CAAA;IACrC,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,oFAA+D,CAAA;IAC/D,wFAAmE,CAAA;IACnE,gEAA2C,CAAA;IAC3C,wFAAmE,CAAA;IACnE,wDAAmC,CAAA;IACnC,4DAAuC,CAAA;IACvC,4DAAuC,CAAA;IACvC,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,0EAAqD,CAAA;IACrD,wFAAmE,CAAA;IACnE,gFAA2D,CAAA;IAC3D,oGAA+E,CAAA;IAC/E,kFAA6D,CAAA;IAC7D,wFAAmE,CAAA;IACnE,0FAAqE,CAAA;IACrE,kHAA6F,CAAA;IAC7F,0HAAqG,CAAA;IACrG,4HAAuG,CAAA;IACvG,8EAAyD,CAAA;IACzD,gFAA2D,CAAA;IAC3D,0EAAqD,CAAA;IACrD,0HAAqG,CAAA;IACrG,8CAAyB,CAAA;IACzB,gEAA2C,CAAA;IAC3C,oFAA+D,CAAA;IAC/D,oEAA+C,CAAA;IAC/C,gFAA2D,CAAA;IAE3D,kEAA6C,CAAA;IAC7C,gFAA2D,CAAA;IAC3D,4EAAuD,CAAA;IACvD,sFAAiE,CAAA;IACjE,oEAA+C,CAAA;IAC/C,4FAAuE,CAAA;IAEvE,4DAAuC,CAAA;IACvC,0EAAqD,CAAA;IACrD,sEAAiD,CAAA;IACjD,gFAA2D,CAAA;IAC3D,sFAAiE,CAAA;IAEjE,0EAAqD,CAAA;IACrD,wFAAmE,CAAA;IACnE,oFAA+D,CAAA;IAC/D,8FAAyE,CAAA;IACzE,oFAA+D,CAAA;IAE/D,gFAA2D,CAAA;IAC3D,8FAAyE,CAAA;IACzE,0FAAqE,CAAA;IACrE,oGAA+E,CAAA;IAC/E,gGAA2E,CAAA;IAE3E,8EAAyD,CAAA;IACzD,wFAAmE,CAAA;IACnE,sFAAiE,CAAA;IAEjE,oGAA+E,CAAA;IAC/E,0FAAqE,CAAA;IACrE,wGAAmF,CAAA;IACnF,8GAAyF,CAAA;IACzF,oHAA+F,CAAA;IAC/F,0FAAqE,CAAA;IACrE,sEAAiD,CAAA;IACjD,gGAA2E,CAAA;IAC3E,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,oEAA+C,CAAA;IAC/C,8DAAyC,CAAA;IACzC,4EAAuD,CAAA;IACvD,kFAA6D,CAAA;IAE7D,4EAAuD,CAAA;IACvD,oFAA+D,CAAA;IAC/D,oFAA+D,CAAA;IAC/D,0EAAqD,CAAA;IACrD,8FAAyE,CAAA;IAEzE,kFAA6D,CAAA;IAC7D,4CAAuB,CAAA;IAEvB,gFAA2D,CAAA;AAC7D,CAAC,EAxFI,iBAAiB,KAAjB,iBAAiB,QAwFrB;AAED,eAAe,iBAAiB,CAAC"}