@oneuptime/common 9.2.11 → 9.2.14

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 (193) hide show
  1. package/Models/DatabaseModels/AlertInternalNote.ts +29 -0
  2. package/Models/DatabaseModels/IncidentInternalNote.ts +29 -0
  3. package/Models/DatabaseModels/IncidentPublicNote.ts +29 -0
  4. package/Models/DatabaseModels/Index.ts +3 -11
  5. package/Models/DatabaseModels/{CopilotPullRequest.ts → LlmProvider.ts} +243 -248
  6. package/Models/DatabaseModels/ScheduledMaintenanceInternalNote.ts +29 -0
  7. package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +29 -0
  8. package/Server/API/LlmProviderAPI.ts +57 -0
  9. package/Server/API/MicrosoftTeamsAPI.ts +2 -146
  10. package/Server/API/SlackAPI.ts +105 -0
  11. package/Server/API/StatusPageAPI.ts +6 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1765477339178-MigrationName.ts +71 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1765540325149-MigrationName.ts +45 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1765540549739-MigrationName.ts +61 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1765544010078-MigrationName.ts +35 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  17. package/Server/Middleware/SlackAuthorization.ts +4 -1
  18. package/Server/Services/AlertInternalNoteService.ts +26 -0
  19. package/Server/Services/IncidentInternalNoteService.ts +26 -0
  20. package/Server/Services/IncidentPublicNoteService.ts +26 -0
  21. package/Server/Services/Index.ts +2 -11
  22. package/Server/Services/LlmProviderService.ts +100 -0
  23. package/Server/Services/ScheduledMaintenanceInternalNoteService.ts +26 -0
  24. package/Server/Services/ScheduledMaintenancePublicNoteService.ts +26 -0
  25. package/Server/Services/StatusPageService.ts +3 -0
  26. package/Server/Utils/Express.ts +1 -0
  27. package/Server/Utils/StartServer.ts +5 -0
  28. package/Server/Utils/StatusPageResource.ts +89 -0
  29. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +96 -55
  30. package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +16 -0
  31. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +184 -1
  32. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +224 -1
  33. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +232 -1
  34. package/Server/Utils/Workspace/Slack/Slack.ts +113 -0
  35. package/Server/Utils/Workspace/Slack/app-manifest.json +13 -2
  36. package/Tests/Server/Utils/StatusPageResource.test.ts +161 -0
  37. package/Types/Icon/IconProp.ts +1 -0
  38. package/Types/LLM/Index.ts +4 -0
  39. package/Types/LLM/LlmType.ts +7 -0
  40. package/Types/Monitor/MonitorStep.ts +14 -0
  41. package/Types/Permission.ts +38 -113
  42. package/UI/Components/Icon/Icon.tsx +8 -0
  43. package/UI/Components/Link/Link.tsx +5 -1
  44. package/build/dist/Models/DatabaseModels/AlertInternalNote.js +30 -0
  45. package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -1
  46. package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +30 -0
  47. package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -1
  48. package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +30 -0
  49. package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
  50. package/build/dist/Models/DatabaseModels/Index.js +2 -10
  51. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  52. package/build/dist/Models/DatabaseModels/{CopilotPullRequest.js → LlmProvider.js} +263 -255
  53. package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -0
  54. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js +30 -0
  55. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js.map +1 -1
  56. package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +30 -0
  57. package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
  58. package/build/dist/Server/API/LlmProviderAPI.js +36 -0
  59. package/build/dist/Server/API/LlmProviderAPI.js.map +1 -0
  60. package/build/dist/Server/API/MicrosoftTeamsAPI.js +2 -91
  61. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  62. package/build/dist/Server/API/SlackAPI.js +74 -0
  63. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  64. package/build/dist/Server/API/StatusPageAPI.js +6 -0
  65. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  66. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765477339178-MigrationName.js +30 -0
  67. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765477339178-MigrationName.js.map +1 -0
  68. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765540325149-MigrationName.js +22 -0
  69. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765540325149-MigrationName.js.map +1 -0
  70. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765540549739-MigrationName.js +39 -0
  71. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765540549739-MigrationName.js.map +1 -0
  72. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765544010078-MigrationName.js +18 -0
  73. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765544010078-MigrationName.js.map +1 -0
  74. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  75. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  76. package/build/dist/Server/Middleware/SlackAuthorization.js +4 -1
  77. package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
  78. package/build/dist/Server/Services/AlertInternalNoteService.js +24 -0
  79. package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
  80. package/build/dist/Server/Services/IncidentInternalNoteService.js +24 -0
  81. package/build/dist/Server/Services/IncidentInternalNoteService.js.map +1 -1
  82. package/build/dist/Server/Services/IncidentPublicNoteService.js +24 -0
  83. package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
  84. package/build/dist/Server/Services/Index.js +2 -10
  85. package/build/dist/Server/Services/Index.js.map +1 -1
  86. package/build/dist/Server/Services/LlmProviderService.js +85 -0
  87. package/build/dist/Server/Services/LlmProviderService.js.map +1 -0
  88. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js +24 -0
  89. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js.map +1 -1
  90. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +24 -0
  91. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
  92. package/build/dist/Server/Services/StatusPageService.js +3 -0
  93. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  94. package/build/dist/Server/Utils/Express.js.map +1 -1
  95. package/build/dist/Server/Utils/StartServer.js +5 -0
  96. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  97. package/build/dist/Server/Utils/StatusPageResource.js +68 -0
  98. package/build/dist/Server/Utils/StatusPageResource.js.map +1 -0
  99. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +73 -42
  100. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  101. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +13 -0
  102. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
  103. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +143 -1
  104. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -1
  105. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +173 -1
  106. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
  107. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +173 -1
  108. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -1
  109. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +92 -0
  110. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  111. package/build/dist/Server/Utils/Workspace/Slack/app-manifest.json +12 -2
  112. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js +122 -0
  113. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js.map +1 -0
  114. package/build/dist/Types/Icon/IconProp.js +1 -0
  115. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  116. package/build/dist/Types/LLM/Index.js +4 -0
  117. package/build/dist/Types/LLM/Index.js.map +1 -0
  118. package/build/dist/Types/LLM/LlmType.js +8 -0
  119. package/build/dist/Types/LLM/LlmType.js.map +1 -0
  120. package/build/dist/Types/Monitor/MonitorStep.js +10 -0
  121. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  122. package/build/dist/Types/Permission.js +32 -97
  123. package/build/dist/Types/Permission.js.map +1 -1
  124. package/build/dist/UI/Components/Icon/Icon.js +3 -0
  125. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  126. package/build/dist/UI/Components/Link/Link.js +4 -1
  127. package/build/dist/UI/Components/Link/Link.js.map +1 -1
  128. package/package.json +5 -1
  129. package/Models/DatabaseModels/CopilotAction.ts +0 -772
  130. package/Models/DatabaseModels/CopilotActionTypePriority.ts +0 -340
  131. package/Models/DatabaseModels/CopilotCodeRepository.ts +0 -637
  132. package/Models/DatabaseModels/ServiceCopilotCodeRepository.ts +0 -544
  133. package/Server/API/CopilotActionAPI.ts +0 -418
  134. package/Server/API/CopilotCodeRepositoryAPI.ts +0 -127
  135. package/Server/API/CopilotPullRequestAPI.ts +0 -243
  136. package/Server/Docs/CodeRepository.md +0 -43
  137. package/Server/Middleware/CodeRepositoryAuthorization.ts +0 -50
  138. package/Server/Services/CopilotActionService.ts +0 -10
  139. package/Server/Services/CopilotActionTypePriorityService.ts +0 -67
  140. package/Server/Services/CopilotCodeRepositoryService.ts +0 -62
  141. package/Server/Services/CopilotPullRequestService.ts +0 -10
  142. package/Server/Services/ServiceCopilotCodeRepositoryService.ts +0 -10
  143. package/Types/Copilot/CopilotActionProps/DirectoryActionProp.ts +0 -3
  144. package/Types/Copilot/CopilotActionProps/ExceptionActionProp.ts +0 -4
  145. package/Types/Copilot/CopilotActionProps/FileActionProp.ts +0 -7
  146. package/Types/Copilot/CopilotActionProps/FunctionActionProp.ts +0 -5
  147. package/Types/Copilot/CopilotActionProps/Index.ts +0 -96
  148. package/Types/Copilot/CopilotActionProps/SpanActionProp.ts +0 -4
  149. package/Types/Copilot/CopilotActionStatus.ts +0 -114
  150. package/Types/Copilot/CopilotActionType.ts +0 -212
  151. package/build/dist/Models/DatabaseModels/CopilotAction.js +0 -793
  152. package/build/dist/Models/DatabaseModels/CopilotAction.js.map +0 -1
  153. package/build/dist/Models/DatabaseModels/CopilotActionTypePriority.js +0 -358
  154. package/build/dist/Models/DatabaseModels/CopilotActionTypePriority.js.map +0 -1
  155. package/build/dist/Models/DatabaseModels/CopilotCodeRepository.js +0 -656
  156. package/build/dist/Models/DatabaseModels/CopilotCodeRepository.js.map +0 -1
  157. package/build/dist/Models/DatabaseModels/CopilotPullRequest.js.map +0 -1
  158. package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js +0 -561
  159. package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js.map +0 -1
  160. package/build/dist/Server/API/CopilotActionAPI.js +0 -295
  161. package/build/dist/Server/API/CopilotActionAPI.js.map +0 -1
  162. package/build/dist/Server/API/CopilotCodeRepositoryAPI.js +0 -91
  163. package/build/dist/Server/API/CopilotCodeRepositoryAPI.js.map +0 -1
  164. package/build/dist/Server/API/CopilotPullRequestAPI.js +0 -166
  165. package/build/dist/Server/API/CopilotPullRequestAPI.js.map +0 -1
  166. package/build/dist/Server/Middleware/CodeRepositoryAuthorization.js +0 -48
  167. package/build/dist/Server/Middleware/CodeRepositoryAuthorization.js.map +0 -1
  168. package/build/dist/Server/Services/CopilotActionService.js +0 -9
  169. package/build/dist/Server/Services/CopilotActionService.js.map +0 -1
  170. package/build/dist/Server/Services/CopilotActionTypePriorityService.js +0 -61
  171. package/build/dist/Server/Services/CopilotActionTypePriorityService.js.map +0 -1
  172. package/build/dist/Server/Services/CopilotCodeRepositoryService.js +0 -61
  173. package/build/dist/Server/Services/CopilotCodeRepositoryService.js.map +0 -1
  174. package/build/dist/Server/Services/CopilotPullRequestService.js +0 -9
  175. package/build/dist/Server/Services/CopilotPullRequestService.js.map +0 -1
  176. package/build/dist/Server/Services/ServiceCopilotCodeRepositoryService.js +0 -9
  177. package/build/dist/Server/Services/ServiceCopilotCodeRepositoryService.js.map +0 -1
  178. package/build/dist/Types/Copilot/CopilotActionProps/DirectoryActionProp.js +0 -2
  179. package/build/dist/Types/Copilot/CopilotActionProps/DirectoryActionProp.js.map +0 -1
  180. package/build/dist/Types/Copilot/CopilotActionProps/ExceptionActionProp.js +0 -2
  181. package/build/dist/Types/Copilot/CopilotActionProps/ExceptionActionProp.js.map +0 -1
  182. package/build/dist/Types/Copilot/CopilotActionProps/FileActionProp.js +0 -2
  183. package/build/dist/Types/Copilot/CopilotActionProps/FileActionProp.js.map +0 -1
  184. package/build/dist/Types/Copilot/CopilotActionProps/FunctionActionProp.js +0 -2
  185. package/build/dist/Types/Copilot/CopilotActionProps/FunctionActionProp.js.map +0 -1
  186. package/build/dist/Types/Copilot/CopilotActionProps/Index.js +0 -64
  187. package/build/dist/Types/Copilot/CopilotActionProps/Index.js.map +0 -1
  188. package/build/dist/Types/Copilot/CopilotActionProps/SpanActionProp.js +0 -2
  189. package/build/dist/Types/Copilot/CopilotActionProps/SpanActionProp.js.map +0 -1
  190. package/build/dist/Types/Copilot/CopilotActionStatus.js +0 -96
  191. package/build/dist/Types/Copilot/CopilotActionStatus.js.map +0 -1
  192. package/build/dist/Types/Copilot/CopilotActionType.js +0 -175
  193. package/build/dist/Types/Copilot/CopilotActionType.js.map +0 -1
@@ -7,21 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import CodeRepository from "./CopilotCodeRepository";
11
10
  import Project from "./Project";
12
- import ServiceCatalog from "./ServiceCatalog";
13
- import ServiceCopilotCodeRepository from "./ServiceCopilotCodeRepository";
14
11
  import User from "./User";
15
12
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
16
13
  import Route from "../../Types/API/Route";
17
- import PullRequestState from "../../Types/CodeRepository/PullRequestState";
14
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
18
15
  import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
19
16
  import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
20
- import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
17
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
18
+ import ColumnLength from "../../Types/Database/ColumnLength";
21
19
  import ColumnType from "../../Types/Database/ColumnType";
22
20
  import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
23
- import EnableDocumentation from "../../Types/Database/EnableDocumentation";
24
- import EnableWorkflow from "../../Types/Database/EnableWorkflow";
21
+ import IsPermissionsIf from "../../Types/Database/IsPermissionsIf";
22
+ import SlugifyColumn from "../../Types/Database/SlugifyColumn";
25
23
  import TableColumn from "../../Types/Database/TableColumn";
26
24
  import TableColumnType from "../../Types/Database/TableColumnType";
27
25
  import TableMetadata from "../../Types/Database/TableMetadata";
@@ -29,234 +27,271 @@ import TenantColumn from "../../Types/Database/TenantColumn";
29
27
  import IconProp from "../../Types/Icon/IconProp";
30
28
  import ObjectID from "../../Types/ObjectID";
31
29
  import Permission from "../../Types/Permission";
32
- import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
33
- let CopilotPullRequest = class CopilotPullRequest extends BaseModel {
30
+ import { Column, Entity, JoinColumn, ManyToOne } from "typeorm";
31
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
32
+ import LlmType from "../../Types/LLM/LlmType";
33
+ let LlmProvider = class LlmProvider extends BaseModel {
34
34
  constructor() {
35
35
  super(...arguments);
36
+ this.name = undefined;
37
+ this.description = undefined;
38
+ this.slug = undefined;
39
+ this.llmType = undefined;
40
+ this.apiKey = undefined;
41
+ this.modelName = undefined;
42
+ this.baseUrl = undefined;
36
43
  this.project = undefined;
37
44
  this.projectId = undefined;
38
- this.codeRepository = undefined;
39
- this.codeRepositoryId = undefined;
40
- this.createdByUser = undefined;
41
- this.createdByUserId = undefined;
42
45
  this.deletedByUser = undefined;
43
46
  this.deletedByUserId = undefined;
44
- this.serviceCatalog = undefined;
45
- this.serviceCatalogId = undefined;
46
- this.serviceRepository = undefined;
47
- this.serviceRepositoryId = undefined;
48
- this.pullRequestId = undefined;
49
- this.copilotPullRequestStatus = undefined;
50
- this.isSetupPullRequest = undefined;
47
+ this.createdByUser = undefined;
48
+ this.createdByUserId = undefined;
49
+ this.isGlobalLlm = undefined;
50
+ this.isDefault = undefined;
51
51
  }
52
52
  };
53
53
  __decorate([
54
54
  ColumnAccessControl({
55
- create: [],
56
- read: [
55
+ create: [
57
56
  Permission.ProjectOwner,
58
57
  Permission.ProjectAdmin,
59
58
  Permission.ProjectMember,
60
- Permission.ReadCopilotPullRequest,
59
+ Permission.CreateProjectLlm,
60
+ ],
61
+ read: [Permission.Public],
62
+ update: [
63
+ Permission.ProjectOwner,
64
+ Permission.ProjectAdmin,
65
+ Permission.ProjectMember,
66
+ Permission.EditProjectLlm,
61
67
  ],
62
- update: [],
63
68
  }),
64
69
  TableColumn({
65
- manyToOneRelationColumn: "projectId",
66
- type: TableColumnType.Entity,
67
- modelType: Project,
68
- title: "Project",
69
- description: "Relation to Project Resource in which this object belongs",
70
+ required: true,
71
+ type: TableColumnType.Name,
72
+ canReadOnRelationQuery: true,
73
+ title: "Name",
74
+ description: "A friendly name for this LLM configuration.",
70
75
  }),
71
- ManyToOne(() => {
72
- return Project;
73
- }, {
74
- eager: false,
76
+ Column({
75
77
  nullable: false,
76
- onDelete: "CASCADE",
77
- orphanedRowAction: "nullify",
78
+ type: ColumnType.Name,
79
+ length: ColumnLength.Name,
78
80
  }),
79
- JoinColumn({ name: "projectId" }),
80
- __metadata("design:type", Project)
81
- ], CopilotPullRequest.prototype, "project", void 0);
81
+ __metadata("design:type", String)
82
+ ], LlmProvider.prototype, "name", void 0);
82
83
  __decorate([
83
84
  ColumnAccessControl({
84
- create: [],
85
- read: [
85
+ create: [
86
86
  Permission.ProjectOwner,
87
87
  Permission.ProjectAdmin,
88
88
  Permission.ProjectMember,
89
- Permission.ReadCopilotPullRequest,
89
+ Permission.CreateProjectLlm,
90
90
  ],
91
+ read: [Permission.Public],
92
+ update: [
93
+ Permission.ProjectOwner,
94
+ Permission.ProjectAdmin,
95
+ Permission.ProjectMember,
96
+ Permission.EditProjectLlm,
97
+ ],
98
+ }),
99
+ TableColumn({
100
+ required: false,
101
+ type: TableColumnType.LongText,
102
+ title: "Description",
103
+ description: "Description of this LLM configuration.",
104
+ }),
105
+ Column({
106
+ nullable: true,
107
+ type: ColumnType.LongText,
108
+ }),
109
+ __metadata("design:type", String)
110
+ ], LlmProvider.prototype, "description", void 0);
111
+ __decorate([
112
+ ColumnAccessControl({
113
+ create: [],
114
+ read: [Permission.Public],
91
115
  update: [],
92
116
  }),
93
- Index(),
94
117
  TableColumn({
95
- type: TableColumnType.ObjectID,
96
118
  required: true,
97
- canReadOnRelationQuery: true,
98
- title: "Project ID",
99
- description: "ID of your OneUptime Project in which this object belongs",
119
+ unique: true,
120
+ type: TableColumnType.Slug,
121
+ computed: true,
122
+ title: "Slug",
123
+ description: "Friendly globally unique name for your object",
100
124
  }),
101
125
  Column({
102
- type: ColumnType.ObjectID,
103
126
  nullable: false,
104
- transformer: ObjectID.getDatabaseTransformer(),
127
+ type: ColumnType.Slug,
128
+ length: ColumnLength.Slug,
105
129
  }),
106
- __metadata("design:type", ObjectID)
107
- ], CopilotPullRequest.prototype, "projectId", void 0);
130
+ __metadata("design:type", String)
131
+ ], LlmProvider.prototype, "slug", void 0);
108
132
  __decorate([
109
133
  ColumnAccessControl({
110
- create: [],
111
- read: [
134
+ create: [
112
135
  Permission.ProjectOwner,
113
136
  Permission.ProjectAdmin,
114
137
  Permission.ProjectMember,
115
- Permission.ReadCopilotPullRequest,
138
+ Permission.CreateProjectLlm,
139
+ ],
140
+ read: [Permission.Public],
141
+ update: [
142
+ Permission.ProjectOwner,
143
+ Permission.ProjectAdmin,
144
+ Permission.ProjectMember,
145
+ Permission.EditProjectLlm,
116
146
  ],
117
- update: [],
118
147
  }),
119
148
  TableColumn({
120
- manyToOneRelationColumn: "codeRepositoryId",
121
- type: TableColumnType.Entity,
122
- modelType: CodeRepository,
123
- title: "Code Repository",
124
- description: "Relation to CodeRepository Resource in which this object belongs",
149
+ required: true,
150
+ type: TableColumnType.ShortText,
151
+ title: "LLM Type",
152
+ description: "The type of LLM provider (OpenAI, Anthropic, Ollama, etc.)",
125
153
  }),
126
- ManyToOne(() => {
127
- return CodeRepository;
128
- }, {
129
- eager: false,
130
- nullable: true,
131
- onDelete: "CASCADE",
132
- orphanedRowAction: "nullify",
154
+ Column({
155
+ nullable: false,
156
+ type: ColumnType.ShortText,
157
+ length: ColumnLength.ShortText,
133
158
  }),
134
- JoinColumn({ name: "codeRepositoryId" }),
135
- __metadata("design:type", CodeRepository)
136
- ], CopilotPullRequest.prototype, "codeRepository", void 0);
159
+ __metadata("design:type", String)
160
+ ], LlmProvider.prototype, "llmType", void 0);
137
161
  __decorate([
138
162
  ColumnAccessControl({
139
- create: [],
140
- read: [
163
+ create: [
141
164
  Permission.ProjectOwner,
142
165
  Permission.ProjectAdmin,
143
166
  Permission.ProjectMember,
144
- Permission.ReadCopilotPullRequest,
167
+ Permission.CreateProjectLlm,
168
+ ],
169
+ read: [Permission.ProjectOwner, Permission.ProjectAdmin],
170
+ update: [
171
+ Permission.ProjectOwner,
172
+ Permission.ProjectAdmin,
173
+ Permission.ProjectMember,
174
+ Permission.EditProjectLlm,
145
175
  ],
146
- update: [],
147
176
  }),
148
- Index(),
149
177
  TableColumn({
150
- type: TableColumnType.ObjectID,
151
- required: true,
152
- canReadOnRelationQuery: true,
153
- title: "Code Repository ID",
154
- description: "ID of your OneUptime Code Repository in which this object belongs",
178
+ required: false,
179
+ type: TableColumnType.LongText,
180
+ title: "API Key",
181
+ description: "The API key for the LLM provider. Required for OpenAI and Anthropic.",
182
+ encrypted: true,
155
183
  }),
156
184
  Column({
157
- type: ColumnType.ObjectID,
158
- nullable: false,
159
- transformer: ObjectID.getDatabaseTransformer(),
185
+ nullable: true,
186
+ type: ColumnType.LongText,
160
187
  }),
161
- __metadata("design:type", ObjectID)
162
- ], CopilotPullRequest.prototype, "codeRepositoryId", void 0);
188
+ __metadata("design:type", String)
189
+ ], LlmProvider.prototype, "apiKey", void 0);
163
190
  __decorate([
164
191
  ColumnAccessControl({
165
- create: [],
166
- read: [
192
+ create: [
167
193
  Permission.ProjectOwner,
168
194
  Permission.ProjectAdmin,
169
195
  Permission.ProjectMember,
170
- Permission.ReadCopilotPullRequest,
196
+ Permission.CreateProjectLlm,
197
+ ],
198
+ read: [Permission.Public],
199
+ update: [
200
+ Permission.ProjectOwner,
201
+ Permission.ProjectAdmin,
202
+ Permission.ProjectMember,
203
+ Permission.EditProjectLlm,
171
204
  ],
172
- update: [],
173
205
  }),
174
206
  TableColumn({
175
- manyToOneRelationColumn: "createdByUserId",
176
- type: TableColumnType.Entity,
177
- modelType: User,
178
- title: "Created by User",
179
- description: "Relation to User who created this object (if this object was created by a User)",
207
+ required: false,
208
+ type: TableColumnType.ShortText,
209
+ title: "Model Name",
210
+ description: "The name of the model to use (e.g., gpt-4, claude-3-opus, llama2).",
180
211
  }),
181
- ManyToOne(() => {
182
- return User;
183
- }, {
184
- eager: false,
212
+ Column({
185
213
  nullable: true,
186
- onDelete: "SET NULL",
187
- orphanedRowAction: "nullify",
214
+ type: ColumnType.ShortText,
215
+ length: ColumnLength.ShortText,
188
216
  }),
189
- JoinColumn({ name: "createdByUserId" }),
190
- __metadata("design:type", User)
191
- ], CopilotPullRequest.prototype, "createdByUser", void 0);
217
+ __metadata("design:type", String)
218
+ ], LlmProvider.prototype, "modelName", void 0);
192
219
  __decorate([
193
220
  ColumnAccessControl({
194
- create: [],
195
- read: [
221
+ create: [
196
222
  Permission.ProjectOwner,
197
223
  Permission.ProjectAdmin,
198
224
  Permission.ProjectMember,
199
- Permission.ReadCopilotPullRequest,
225
+ Permission.CreateProjectLlm,
226
+ ],
227
+ read: [Permission.Public],
228
+ update: [
229
+ Permission.ProjectOwner,
230
+ Permission.ProjectAdmin,
231
+ Permission.ProjectMember,
232
+ Permission.EditProjectLlm,
200
233
  ],
201
- update: [],
202
234
  }),
203
235
  TableColumn({
204
- type: TableColumnType.ObjectID,
205
- title: "Created by User ID",
206
- description: "User ID who created this object (if this object was created by a User)",
236
+ required: false,
237
+ type: TableColumnType.ShortURL,
238
+ title: "Base URL",
239
+ description: "The base URL for the LLM API. Required for Ollama, optional for others.",
207
240
  }),
208
241
  Column({
209
- type: ColumnType.ObjectID,
210
242
  nullable: true,
211
- transformer: ObjectID.getDatabaseTransformer(),
243
+ type: ColumnType.ShortURL,
244
+ length: ColumnLength.ShortURL,
212
245
  }),
213
- __metadata("design:type", ObjectID)
214
- ], CopilotPullRequest.prototype, "createdByUserId", void 0);
246
+ __metadata("design:type", String)
247
+ ], LlmProvider.prototype, "baseUrl", void 0);
215
248
  __decorate([
216
249
  ColumnAccessControl({
217
- create: [],
218
- read: [
250
+ create: [
219
251
  Permission.ProjectOwner,
220
252
  Permission.ProjectAdmin,
221
253
  Permission.ProjectMember,
222
- Permission.ReadCopilotPullRequest,
254
+ Permission.CreateProjectLlm,
223
255
  ],
256
+ read: [Permission.Public],
224
257
  update: [],
225
258
  }),
226
259
  TableColumn({
227
- manyToOneRelationColumn: "deletedByUserId",
228
260
  type: TableColumnType.Entity,
229
- title: "Deleted by User",
230
- modelType: User,
231
- description: "Relation to User who deleted this object (if this object was deleted by a User)",
261
+ required: false,
262
+ modelType: Project,
263
+ title: "Project",
264
+ description: "The project this LLM belongs to. If null, it is a global LLM.",
232
265
  }),
233
266
  ManyToOne(() => {
234
- return User;
267
+ return Project;
235
268
  }, {
236
269
  cascade: false,
237
270
  eager: false,
238
271
  nullable: true,
239
- onDelete: "SET NULL",
272
+ onDelete: "CASCADE",
240
273
  orphanedRowAction: "nullify",
241
274
  }),
242
- JoinColumn({ name: "deletedByUserId" }),
243
- __metadata("design:type", User)
244
- ], CopilotPullRequest.prototype, "deletedByUser", void 0);
275
+ JoinColumn({ name: "projectId" }),
276
+ __metadata("design:type", Project)
277
+ ], LlmProvider.prototype, "project", void 0);
245
278
  __decorate([
246
279
  ColumnAccessControl({
247
- create: [],
248
- read: [
280
+ create: [
249
281
  Permission.ProjectOwner,
250
282
  Permission.ProjectAdmin,
251
283
  Permission.ProjectMember,
252
- Permission.ReadCopilotPullRequest,
284
+ Permission.CreateProjectLlm,
253
285
  ],
286
+ read: [Permission.Public],
254
287
  update: [],
255
288
  }),
256
289
  TableColumn({
257
290
  type: TableColumnType.ObjectID,
258
- title: "Deleted by User ID",
259
- description: "User ID who deleted this object (if this object was deleted by a User)",
291
+ required: false,
292
+ canReadOnRelationQuery: true,
293
+ title: "Project ID",
294
+ description: "ID of the project this LLM belongs to. If null, it is a global LLM.",
260
295
  }),
261
296
  Column({
262
297
  type: ColumnType.ObjectID,
@@ -264,55 +299,36 @@ __decorate([
264
299
  transformer: ObjectID.getDatabaseTransformer(),
265
300
  }),
266
301
  __metadata("design:type", ObjectID)
267
- ], CopilotPullRequest.prototype, "deletedByUserId", void 0);
302
+ ], LlmProvider.prototype, "projectId", void 0);
268
303
  __decorate([
269
304
  ColumnAccessControl({
270
305
  create: [],
271
- read: [
272
- Permission.ProjectOwner,
273
- Permission.ProjectAdmin,
274
- Permission.ProjectMember,
275
- Permission.ReadCopilotPullRequest,
276
- ],
306
+ read: [],
277
307
  update: [],
278
308
  }),
279
- TableColumn({
280
- manyToOneRelationColumn: "serviceCatalogId",
281
- type: TableColumnType.Entity,
282
- required: false,
283
- modelType: ServiceCatalog,
284
- title: "Service Catalog",
285
- description: "Relation to Service Catalog Resource in which this object belongs",
286
- }),
309
+ TableColumn({ type: TableColumnType.Entity, modelType: User }),
287
310
  ManyToOne(() => {
288
- return ServiceCatalog;
311
+ return User;
289
312
  }, {
313
+ cascade: false,
290
314
  eager: false,
291
315
  nullable: true,
292
- onDelete: "CASCADE",
316
+ onDelete: "SET NULL",
293
317
  orphanedRowAction: "nullify",
294
318
  }),
295
- JoinColumn({ name: "serviceCatalogId" }),
296
- __metadata("design:type", ServiceCatalog)
297
- ], CopilotPullRequest.prototype, "serviceCatalog", void 0);
319
+ JoinColumn({ name: "deletedByUserId" }),
320
+ __metadata("design:type", User)
321
+ ], LlmProvider.prototype, "deletedByUser", void 0);
298
322
  __decorate([
299
323
  ColumnAccessControl({
300
324
  create: [],
301
- read: [
302
- Permission.ProjectOwner,
303
- Permission.ProjectAdmin,
304
- Permission.ProjectMember,
305
- Permission.ReadCopilotPullRequest,
306
- ],
325
+ read: [],
307
326
  update: [],
308
327
  }),
309
- Index(),
310
328
  TableColumn({
311
329
  type: TableColumnType.ObjectID,
312
- required: false,
313
- canReadOnRelationQuery: true,
314
- title: "Service Catalog ID",
315
- description: "ID of your OneUptime ServiceCatalog in which this object belongs",
330
+ title: "Deleted by User ID",
331
+ description: "User ID who deleted this object (if this object was deleted by a User)",
316
332
  }),
317
333
  Column({
318
334
  type: ColumnType.ObjectID,
@@ -320,55 +336,45 @@ __decorate([
320
336
  transformer: ObjectID.getDatabaseTransformer(),
321
337
  }),
322
338
  __metadata("design:type", ObjectID)
323
- ], CopilotPullRequest.prototype, "serviceCatalogId", void 0);
339
+ ], LlmProvider.prototype, "deletedByUserId", void 0);
324
340
  __decorate([
325
341
  ColumnAccessControl({
326
- create: [],
327
- read: [
342
+ create: [
328
343
  Permission.ProjectOwner,
329
344
  Permission.ProjectAdmin,
330
345
  Permission.ProjectMember,
331
- Permission.ReadCopilotPullRequest,
346
+ Permission.CreateProjectLlm,
332
347
  ],
348
+ read: [Permission.ProjectOwner],
333
349
  update: [],
334
350
  }),
335
- TableColumn({
336
- manyToOneRelationColumn: "serviceRepositoryId",
337
- type: TableColumnType.Entity,
338
- required: false,
339
- modelType: ServiceCopilotCodeRepository,
340
- title: "Service Repository",
341
- description: "Relation to Service Repository Resource in which this object belongs",
342
- }),
351
+ TableColumn({ type: TableColumnType.Entity, modelType: User }),
343
352
  ManyToOne(() => {
344
- return ServiceCopilotCodeRepository;
353
+ return User;
345
354
  }, {
346
355
  eager: false,
347
356
  nullable: true,
348
- onDelete: "CASCADE",
357
+ onDelete: "SET NULL",
349
358
  orphanedRowAction: "nullify",
350
359
  }),
351
- JoinColumn({ name: "serviceRepositoryId" }),
352
- __metadata("design:type", ServiceCopilotCodeRepository)
353
- ], CopilotPullRequest.prototype, "serviceRepository", void 0);
360
+ JoinColumn({ name: "createdByUserId" }),
361
+ __metadata("design:type", User)
362
+ ], LlmProvider.prototype, "createdByUser", void 0);
354
363
  __decorate([
355
364
  ColumnAccessControl({
356
- create: [],
357
- read: [
365
+ create: [
358
366
  Permission.ProjectOwner,
359
367
  Permission.ProjectAdmin,
360
368
  Permission.ProjectMember,
361
- Permission.ReadCopilotPullRequest,
369
+ Permission.CreateProjectLlm,
362
370
  ],
371
+ read: [Permission.ProjectOwner],
363
372
  update: [],
364
373
  }),
365
- Index(),
366
374
  TableColumn({
367
375
  type: TableColumnType.ObjectID,
368
- required: false,
369
- canReadOnRelationQuery: true,
370
- title: "Service Repository ID",
371
- description: "ID of your OneUptime Service Repository in which this object belongs",
376
+ title: "Created by User ID",
377
+ description: "User ID who created this object (if this object was created by a User)",
372
378
  }),
373
379
  Column({
374
380
  type: ColumnType.ObjectID,
@@ -376,109 +382,111 @@ __decorate([
376
382
  transformer: ObjectID.getDatabaseTransformer(),
377
383
  }),
378
384
  __metadata("design:type", ObjectID)
379
- ], CopilotPullRequest.prototype, "serviceRepositoryId", void 0);
385
+ ], LlmProvider.prototype, "createdByUserId", void 0);
380
386
  __decorate([
381
387
  ColumnAccessControl({
382
388
  create: [],
383
- read: [
384
- Permission.ProjectOwner,
385
- Permission.ProjectAdmin,
386
- Permission.ProjectMember,
387
- Permission.ReadCopilotPullRequest,
388
- ],
389
+ read: [],
389
390
  update: [],
390
391
  }),
391
392
  TableColumn({
392
- type: TableColumnType.ShortText,
393
- required: false,
394
- isDefaultValueColumn: false,
393
+ isDefaultValueColumn: true,
394
+ required: true,
395
+ type: TableColumnType.Boolean,
395
396
  canReadOnRelationQuery: true,
396
- title: "Pull Request ID",
397
- description: "ID of Pull Request in the repository where this event was executed and then PR was created.",
397
+ title: "Is Global LLM",
398
+ description: "Is this a global LLM that is available to all projects? Only admins can create global LLMs.",
399
+ defaultValue: false,
398
400
  }),
399
401
  Column({
400
- type: ColumnType.ShortText,
401
- nullable: true,
402
+ type: ColumnType.Boolean,
403
+ nullable: false,
404
+ unique: false,
405
+ default: false,
402
406
  }),
403
- __metadata("design:type", String)
404
- ], CopilotPullRequest.prototype, "pullRequestId", void 0);
407
+ __metadata("design:type", Boolean)
408
+ ], LlmProvider.prototype, "isGlobalLlm", void 0);
405
409
  __decorate([
406
410
  ColumnAccessControl({
407
- create: [],
408
- read: [
411
+ create: [
409
412
  Permission.ProjectOwner,
410
413
  Permission.ProjectAdmin,
411
414
  Permission.ProjectMember,
412
- Permission.ReadCopilotPullRequest,
415
+ Permission.CreateProjectLlm,
413
416
  ],
414
- update: [],
415
- }),
416
- TableColumn({
417
- type: TableColumnType.ShortText,
418
- title: "Copilot Event Status",
419
- canReadOnRelationQuery: true,
420
- description: "Status of Copilot Event that was triggered for this file in Code Repository",
421
- }),
422
- Column({
423
- type: ColumnType.ShortText,
424
- nullable: false,
425
- }),
426
- __metadata("design:type", String)
427
- ], CopilotPullRequest.prototype, "copilotPullRequestStatus", void 0);
428
- __decorate([
429
- ColumnAccessControl({
430
- create: [],
431
- read: [
417
+ read: [Permission.Public],
418
+ update: [
432
419
  Permission.ProjectOwner,
433
420
  Permission.ProjectAdmin,
434
421
  Permission.ProjectMember,
435
- Permission.ReadCopilotPullRequest,
422
+ Permission.EditProjectLlm,
436
423
  ],
437
- update: [],
438
424
  }),
439
425
  TableColumn({
426
+ isDefaultValueColumn: true,
427
+ required: true,
440
428
  type: TableColumnType.Boolean,
441
- title: "Is Setup Pull Request",
442
- required: false,
443
- description: "Is this pull request created by Copilot for setting up the repository?",
429
+ title: "Is Default",
430
+ description: "Is this the default LLM provider for the project? When set, the global LLM provider will not be used.",
431
+ defaultValue: false,
444
432
  }),
445
433
  Column({
446
434
  type: ColumnType.Boolean,
447
- nullable: true,
435
+ nullable: false,
436
+ unique: false,
437
+ default: false,
448
438
  }),
449
439
  __metadata("design:type", Boolean)
450
- ], CopilotPullRequest.prototype, "isSetupPullRequest", void 0);
451
- CopilotPullRequest = __decorate([
452
- CanAccessIfCanReadOn("codeRepository"),
440
+ ], LlmProvider.prototype, "isDefault", void 0);
441
+ LlmProvider = __decorate([
453
442
  EnableDocumentation(),
443
+ TableBillingAccessControl({
444
+ create: PlanType.Growth,
445
+ read: PlanType.Free,
446
+ update: PlanType.Growth,
447
+ delete: PlanType.Free,
448
+ }),
449
+ IsPermissionsIf(Permission.Public, "projectId", null),
454
450
  TenantColumn("projectId"),
451
+ CrudApiEndpoint(new Route("/llm-provider")),
452
+ SlugifyColumn("name", "slug"),
453
+ Entity({
454
+ name: "LlmProvider",
455
+ }),
456
+ TableMetadata({
457
+ tableName: "LlmProvider",
458
+ singularName: "LLM Provider",
459
+ pluralName: "LLM Providers",
460
+ icon: IconProp.Bolt,
461
+ tableDescription: "Manage LLM Provider configurations. Connect to OpenAI, Anthropic, Ollama, or other LLM providers to enable AI features.",
462
+ }),
455
463
  TableAccessControl({
456
- create: [],
464
+ create: [
465
+ Permission.ProjectOwner,
466
+ Permission.ProjectAdmin,
467
+ Permission.ProjectMember,
468
+ Permission.CreateProjectLlm,
469
+ ],
457
470
  read: [
471
+ Permission.Public,
458
472
  Permission.ProjectOwner,
459
473
  Permission.ProjectAdmin,
460
474
  Permission.ProjectMember,
461
- Permission.ReadCopilotPullRequest,
475
+ Permission.ReadProjectLlm,
476
+ ],
477
+ delete: [
478
+ Permission.ProjectOwner,
479
+ Permission.ProjectAdmin,
480
+ Permission.ProjectMember,
481
+ Permission.DeleteProjectLlm,
482
+ ],
483
+ update: [
484
+ Permission.ProjectOwner,
485
+ Permission.ProjectAdmin,
486
+ Permission.ProjectMember,
487
+ Permission.EditProjectLlm,
462
488
  ],
463
- delete: [],
464
- update: [],
465
- }),
466
- EnableWorkflow({
467
- create: true,
468
- delete: false,
469
- update: true,
470
- }),
471
- CrudApiEndpoint(new Route("/copilot-pull-request")),
472
- TableMetadata({
473
- tableName: "CopilotPullRequest",
474
- singularName: "Copilot Pull Request",
475
- pluralName: "Copilot Pull Requests",
476
- icon: IconProp.Bolt,
477
- tableDescription: "List of pull requests created by Copilot and status of those requests.",
478
- }),
479
- Entity({
480
- name: "CopilotPullRequest",
481
489
  })
482
- ], CopilotPullRequest);
483
- export default CopilotPullRequest;
484
- //# sourceMappingURL=CopilotPullRequest.js.map
490
+ ], LlmProvider);
491
+ export default LlmProvider;
492
+ //# sourceMappingURL=LlmProvider.js.map