@gitpod/gitpod-protocol 0.1.5-mp-pat-server-impl.0 → 0.1.5-mp-copy-2023.1

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 (272) hide show
  1. package/lib/accounting-protocol.d.ts +1 -1
  2. package/lib/accounting-protocol.js +1 -1
  3. package/lib/admin-protocol.d.ts +5 -2
  4. package/lib/admin-protocol.d.ts.map +1 -1
  5. package/lib/admin-protocol.js +1 -1
  6. package/lib/admin-protocol.js.map +1 -1
  7. package/lib/analytics.d.ts +1 -1
  8. package/lib/analytics.js +1 -1
  9. package/lib/attribution.d.ts +2 -2
  10. package/lib/attribution.js +2 -2
  11. package/lib/auth.d.ts +1 -1
  12. package/lib/auth.js +1 -1
  13. package/lib/billing-mode.d.ts +2 -2
  14. package/lib/billing-mode.js +2 -2
  15. package/lib/blocked-repositories-protocol.d.ts +2 -2
  16. package/lib/blocked-repositories-protocol.js +2 -2
  17. package/lib/context-url.d.ts +1 -2
  18. package/lib/context-url.d.ts.map +1 -1
  19. package/lib/context-url.js +1 -3
  20. package/lib/context-url.js.map +1 -1
  21. package/lib/context-url.spec.d.ts +1 -3
  22. package/lib/context-url.spec.d.ts.map +1 -1
  23. package/lib/context-url.spec.js +1 -29
  24. package/lib/context-url.spec.js.map +1 -1
  25. package/lib/encryption/container-module.d.ts +1 -1
  26. package/lib/encryption/container-module.js +1 -1
  27. package/lib/encryption/encryption-engine.d.ts +1 -1
  28. package/lib/encryption/encryption-engine.js +1 -1
  29. package/lib/encryption/encryption-engine.spec.d.ts +1 -1
  30. package/lib/encryption/encryption-engine.spec.js +1 -1
  31. package/lib/encryption/encryption-service.d.ts +1 -1
  32. package/lib/encryption/encryption-service.js +1 -1
  33. package/lib/encryption/key-provider.d.ts +1 -1
  34. package/lib/encryption/key-provider.js +1 -1
  35. package/lib/env.d.ts +1 -1
  36. package/lib/env.d.ts.map +1 -1
  37. package/lib/env.js +1 -1
  38. package/lib/env.js.map +1 -1
  39. package/lib/experiments/always-default.d.ts +2 -2
  40. package/lib/experiments/configcat-server.d.ts +2 -2
  41. package/lib/experiments/configcat-server.js +2 -2
  42. package/lib/experiments/configcat.d.ts +2 -2
  43. package/lib/experiments/configcat.js +2 -2
  44. package/lib/experiments/types.d.ts +2 -2
  45. package/lib/experiments/types.js +2 -2
  46. package/lib/gitpod-file-parser.d.ts +1 -1
  47. package/lib/gitpod-file-parser.js +1 -1
  48. package/lib/gitpod-file-parser.spec.d.ts +1 -1
  49. package/lib/gitpod-file-parser.spec.js +1 -1
  50. package/lib/gitpod-service.d.ts +6 -8
  51. package/lib/gitpod-service.d.ts.map +1 -1
  52. package/lib/gitpod-service.js +1 -1
  53. package/lib/gitpod-service.js.map +1 -1
  54. package/lib/headless-workspace-log.d.ts +1 -1
  55. package/lib/headless-workspace-log.js +1 -1
  56. package/lib/ide-frontend-service.d.ts +1 -1
  57. package/lib/ide-frontend-service.js +1 -1
  58. package/lib/ide-protocol.d.ts +10 -2
  59. package/lib/ide-protocol.d.ts.map +1 -1
  60. package/lib/ide-protocol.js +1 -1
  61. package/lib/index.d.ts +1 -1
  62. package/lib/index.js +1 -1
  63. package/lib/installation-admin-protocol.d.ts +2 -2
  64. package/lib/installation-admin-protocol.js +2 -2
  65. package/lib/license-protocol.d.ts +1 -1
  66. package/lib/license-protocol.js +1 -1
  67. package/lib/messaging/browser/connection.d.ts +1 -2
  68. package/lib/messaging/browser/connection.d.ts.map +1 -1
  69. package/lib/messaging/browser/connection.js +3 -3
  70. package/lib/messaging/browser/connection.js.map +1 -1
  71. package/lib/messaging/browser/window-connection.d.ts +1 -1
  72. package/lib/messaging/browser/window-connection.js +1 -1
  73. package/lib/messaging/client-call-metrics.d.ts +3 -1
  74. package/lib/messaging/client-call-metrics.d.ts.map +1 -1
  75. package/lib/messaging/client-call-metrics.js +14 -1
  76. package/lib/messaging/client-call-metrics.js.map +1 -1
  77. package/lib/messaging/error.d.ts +2 -1
  78. package/lib/messaging/error.d.ts.map +1 -1
  79. package/lib/messaging/error.js +3 -1
  80. package/lib/messaging/error.js.map +1 -1
  81. package/lib/oss-allowlist.d.ts +1 -1
  82. package/lib/oss-allowlist.js +1 -1
  83. package/lib/payment-protocol.d.ts +1 -1
  84. package/lib/payment-protocol.js +1 -1
  85. package/lib/permission.d.ts +1 -1
  86. package/lib/permission.js +1 -1
  87. package/lib/plans.d.ts +1 -1
  88. package/lib/plans.js +1 -1
  89. package/lib/protocol.d.ts +4 -15
  90. package/lib/protocol.d.ts.map +1 -1
  91. package/lib/protocol.js +2 -6
  92. package/lib/protocol.js.map +1 -1
  93. package/lib/protocol.spec.d.ts +1 -1
  94. package/lib/protocol.spec.js +1 -1
  95. package/lib/snapshot-url.d.ts +1 -1
  96. package/lib/snapshot-url.js +1 -1
  97. package/lib/snapshot-url.spec.d.ts +1 -1
  98. package/lib/snapshot-url.spec.js +1 -1
  99. package/lib/team-subscription-protocol.d.ts +1 -1
  100. package/lib/team-subscription-protocol.js +1 -1
  101. package/lib/teams-projects-protocol.d.ts +1 -2
  102. package/lib/teams-projects-protocol.d.ts.map +1 -1
  103. package/lib/teams-projects-protocol.js +1 -1
  104. package/lib/teams-projects-protocol.js.map +1 -1
  105. package/lib/typings/globals.d.ts +1 -1
  106. package/lib/typings/globals.js +1 -1
  107. package/lib/usage.d.ts +2 -2
  108. package/lib/usage.js +2 -2
  109. package/lib/util/analytics.d.ts +1 -1
  110. package/lib/util/analytics.js +1 -1
  111. package/lib/util/async-iterator.d.ts +1 -1
  112. package/lib/util/async-iterator.js +1 -1
  113. package/lib/util/cancelable.d.ts +1 -1
  114. package/lib/util/cancelable.js +1 -1
  115. package/lib/util/date-time.d.ts +1 -1
  116. package/lib/util/date-time.js +1 -1
  117. package/lib/util/debug-app.d.ts +1 -1
  118. package/lib/util/debug-app.js +1 -1
  119. package/lib/util/deep-partial.d.ts +1 -1
  120. package/lib/util/deep-partial.js +1 -1
  121. package/lib/util/deferred.d.ts +1 -1
  122. package/lib/util/deferred.js +1 -1
  123. package/lib/util/garbage-collected-cache.d.ts +1 -1
  124. package/lib/util/garbage-collected-cache.js +1 -1
  125. package/lib/util/generate-workspace-id.d.ts +1 -1
  126. package/lib/util/generate-workspace-id.js +1 -1
  127. package/lib/util/generate-workspace-id.spec.d.ts +1 -1
  128. package/lib/util/generate-workspace-id.spec.js +1 -1
  129. package/lib/util/gitpod-cookie.d.ts +1 -1
  130. package/lib/util/gitpod-cookie.js +1 -1
  131. package/lib/util/gitpod-host-url.d.ts +2 -1
  132. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  133. package/lib/util/gitpod-host-url.js +4 -1
  134. package/lib/util/gitpod-host-url.js.map +1 -1
  135. package/lib/util/gitpod-host-url.spec.d.ts +1 -1
  136. package/lib/util/gitpod-host-url.spec.js +1 -1
  137. package/lib/util/grpc.d.ts +2 -1
  138. package/lib/util/grpc.d.ts.map +1 -1
  139. package/lib/util/grpc.js +1 -1
  140. package/lib/util/grpc.js.map +1 -1
  141. package/lib/util/jaeger-client-types.d.ts +1 -1
  142. package/lib/util/jaeger-client-types.js +1 -1
  143. package/lib/util/logging.d.ts +1 -1
  144. package/lib/util/logging.js +1 -1
  145. package/lib/util/logging.spec.d.ts +1 -1
  146. package/lib/util/logging.spec.js +1 -1
  147. package/lib/util/make-link.d.ts +1 -1
  148. package/lib/util/make-link.js +1 -1
  149. package/lib/util/nice-grpc.d.ts +2 -2
  150. package/lib/util/nice-grpc.d.ts.map +1 -1
  151. package/lib/util/nice-grpc.js +4 -2
  152. package/lib/util/nice-grpc.js.map +1 -1
  153. package/lib/util/parse-workspace-id.d.ts +1 -1
  154. package/lib/util/parse-workspace-id.js +1 -1
  155. package/lib/util/parse-workspace-id.spec.d.ts +1 -1
  156. package/lib/util/parse-workspace-id.spec.js +1 -1
  157. package/lib/util/queue.d.ts +1 -1
  158. package/lib/util/queue.js +1 -1
  159. package/lib/util/queue.spec.d.ts +1 -1
  160. package/lib/util/queue.spec.js +1 -1
  161. package/lib/util/repeat.d.ts +1 -1
  162. package/lib/util/repeat.js +1 -1
  163. package/lib/util/semaphore.d.ts +1 -1
  164. package/lib/util/semaphore.js +1 -1
  165. package/lib/util/skip-if.d.ts +1 -1
  166. package/lib/util/skip-if.js +1 -1
  167. package/lib/util/timeutil.d.ts +1 -1
  168. package/lib/util/timeutil.js +1 -1
  169. package/lib/util/timeutil.spec.d.ts +1 -1
  170. package/lib/util/timeutil.spec.js +1 -1
  171. package/lib/util/tracing.d.ts +1 -1
  172. package/lib/util/tracing.js +1 -1
  173. package/lib/util/tracing.spec.d.ts +1 -1
  174. package/lib/util/tracing.spec.js +1 -1
  175. package/lib/util/workspace-port-authentication.d.ts +1 -1
  176. package/lib/util/workspace-port-authentication.js +1 -1
  177. package/lib/webhook-event.d.ts +2 -2
  178. package/lib/webhook-event.js +2 -2
  179. package/lib/workspace-class.d.ts +3 -3
  180. package/lib/workspace-class.d.ts.map +1 -1
  181. package/lib/workspace-class.js +2 -2
  182. package/lib/workspace-cluster.d.ts +1 -1
  183. package/lib/workspace-cluster.js +1 -1
  184. package/lib/workspace-instance.d.ts +2 -1
  185. package/lib/workspace-instance.d.ts.map +1 -1
  186. package/lib/workspace-instance.js +1 -1
  187. package/lib/wsready.d.ts +8 -2
  188. package/lib/wsready.d.ts.map +1 -1
  189. package/lib/wsready.js +3 -3
  190. package/package.json +1 -1
  191. package/pkg-yarn.lock +1 -1
  192. package/provenance-bundle.jsonl +1 -1
  193. package/src/accounting-protocol.ts +1 -1
  194. package/src/admin-protocol.ts +7 -2
  195. package/src/analytics.ts +1 -1
  196. package/src/attribution.ts +2 -2
  197. package/src/auth.ts +1 -1
  198. package/src/billing-mode.ts +2 -2
  199. package/src/blocked-repositories-protocol.ts +2 -2
  200. package/src/context-url.spec.ts +1 -19
  201. package/src/context-url.ts +1 -3
  202. package/src/encryption/container-module.ts +1 -1
  203. package/src/encryption/encryption-engine.spec.ts +1 -1
  204. package/src/encryption/encryption-engine.ts +1 -1
  205. package/src/encryption/encryption-service.ts +1 -1
  206. package/src/encryption/key-provider.ts +1 -1
  207. package/src/env.ts +2 -3
  208. package/src/experiments/always-default.ts +2 -2
  209. package/src/experiments/configcat-server.ts +2 -2
  210. package/src/experiments/configcat.ts +2 -2
  211. package/src/experiments/types.ts +2 -2
  212. package/src/gitpod-file-parser.spec.ts +1 -1
  213. package/src/gitpod-file-parser.ts +1 -1
  214. package/src/gitpod-service.ts +8 -9
  215. package/src/headless-workspace-log.ts +1 -1
  216. package/src/ide-frontend-service.ts +1 -1
  217. package/src/ide-protocol.ts +12 -2
  218. package/src/index.ts +1 -1
  219. package/src/installation-admin-protocol.ts +2 -2
  220. package/src/license-protocol.ts +1 -1
  221. package/src/messaging/browser/connection.ts +3 -4
  222. package/src/messaging/browser/window-connection.ts +1 -1
  223. package/src/messaging/client-call-metrics.ts +18 -1
  224. package/src/messaging/error.ts +4 -1
  225. package/src/oss-allowlist.ts +1 -1
  226. package/src/payment-protocol.ts +1 -1
  227. package/src/permission.ts +1 -1
  228. package/src/plans.ts +1 -1
  229. package/src/protocol.spec.ts +1 -1
  230. package/src/protocol.ts +5 -21
  231. package/src/snapshot-url.spec.ts +1 -1
  232. package/src/snapshot-url.ts +1 -1
  233. package/src/team-subscription-protocol.ts +1 -1
  234. package/src/teams-projects-protocol.ts +1 -2
  235. package/src/typings/globals.ts +1 -1
  236. package/src/usage.ts +2 -2
  237. package/src/util/analytics.ts +1 -1
  238. package/src/util/async-iterator.ts +1 -1
  239. package/src/util/cancelable.ts +1 -1
  240. package/src/util/date-time.ts +1 -1
  241. package/src/util/debug-app.ts +1 -1
  242. package/src/util/deep-partial.ts +1 -1
  243. package/src/util/deferred.ts +1 -1
  244. package/src/util/garbage-collected-cache.ts +1 -1
  245. package/src/util/generate-workspace-id.spec.ts +1 -1
  246. package/src/util/generate-workspace-id.ts +1 -1
  247. package/src/util/gitpod-cookie.ts +1 -1
  248. package/src/util/gitpod-host-url.spec.ts +1 -1
  249. package/src/util/gitpod-host-url.ts +5 -1
  250. package/src/util/grpc.ts +4 -1
  251. package/src/util/jaeger-client-types.ts +1 -1
  252. package/src/util/logging.spec.ts +1 -1
  253. package/src/util/logging.ts +1 -1
  254. package/src/util/make-link.ts +1 -1
  255. package/src/util/nice-grpc.ts +5 -2
  256. package/src/util/parse-workspace-id.spec.ts +1 -1
  257. package/src/util/parse-workspace-id.ts +1 -1
  258. package/src/util/queue.spec.ts +1 -1
  259. package/src/util/queue.ts +1 -1
  260. package/src/util/repeat.ts +1 -1
  261. package/src/util/semaphore.ts +1 -1
  262. package/src/util/skip-if.ts +1 -1
  263. package/src/util/timeutil.spec.ts +1 -1
  264. package/src/util/timeutil.ts +1 -1
  265. package/src/util/tracing.spec.ts +1 -1
  266. package/src/util/tracing.ts +1 -1
  267. package/src/util/workspace-port-authentication.ts +1 -1
  268. package/src/webhook-event.ts +2 -2
  269. package/src/workspace-class.ts +3 -3
  270. package/src/workspace-cluster.ts +1 -1
  271. package/src/workspace-instance.ts +7 -1
  272. package/src/wsready.ts +10 -3
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { User, Workspace, NamedWorkspaceFeatureFlag } from "./protocol";
@@ -11,9 +11,9 @@ import { Project, Team, PrebuildWithStatus, TeamMemberInfo, TeamMemberRole } fro
11
11
  import { WorkspaceInstance, WorkspaceInstancePhase } from "./workspace-instance";
12
12
  import { RoleOrPermission } from "./permission";
13
13
  import { AccountStatement } from "./accounting-protocol";
14
- import { InstallationAdminSettings } from "./installation-admin-protocol";
15
14
  import { BillingMode } from "./billing-mode";
16
15
  import { CostCenterJSON, ListUsageRequest, ListUsageResponse } from "./usage";
16
+ import { InstallationAdminSettings, TelemetryData } from "./installation-admin-protocol";
17
17
 
18
18
  export interface AdminServer {
19
19
  adminGetUsers(req: AdminGetListRequest<User>): Promise<AdminGetListResult<User>>;
@@ -62,6 +62,11 @@ export interface AdminServer {
62
62
  adminListUsage(req: ListUsageRequest): Promise<ListUsageResponse>;
63
63
  adminAddUsageCreditNote(attributionId: string, credits: number, note: string): Promise<void>;
64
64
  adminGetUsageBalance(attributionId: string): Promise<number>;
65
+
66
+ // Admin Settings
67
+ adminGetSettings(): Promise<InstallationAdminSettings>;
68
+ adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>;
69
+ adminGetTelemetryData(): Promise<TelemetryData>;
65
70
  }
66
71
 
67
72
  export interface AdminGetListRequest<T> {
package/src/analytics.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export const IAnalyticsWriter = Symbol("IAnalyticsWriter");
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { User } from "./protocol";
package/src/auth.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export interface SelectAccountPayload {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export interface BlockedRepository {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import * as chai from "chai";
@@ -41,24 +41,6 @@ export class ContextUrlTest {
41
41
  expect(actual?.pathname).to.equal("/gitpod-io/gitpod-test-repo.git");
42
42
  }
43
43
 
44
- @test public parseContextUrl_withPrebuild() {
45
- const actual = ContextURL.getNormalizedURL({
46
- contextURL: "prebuild/https://github.com/gitpod-io/gitpod-test-repo",
47
- context: {},
48
- } as WsContextUrl);
49
- expect(actual?.host).to.equal("github.com");
50
- expect(actual?.pathname).to.equal("/gitpod-io/gitpod-test-repo");
51
- }
52
-
53
- @test public parseContextUrl_withPrebuild_withoutSchema() {
54
- const actual = ContextURL.getNormalizedURL({
55
- contextURL: "prebuild/github.com/gitpod-io/gitpod-test-repo",
56
- context: {},
57
- } as WsContextUrl);
58
- expect(actual?.host).to.equal("github.com");
59
- expect(actual?.pathname).to.equal("/gitpod-io/gitpod-test-repo");
60
- }
61
-
62
44
  @test public parseContextUrl_badUrl() {
63
45
  const actual = ContextURL.getNormalizedURL({ contextURL: "[Object object]", context: {} } as WsContextUrl);
64
46
  expect(actual).to.be.undefined;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { Workspace } from ".";
@@ -15,7 +15,6 @@ import { Workspace } from ".";
15
15
  * TODO(gpl) See if we can get this into `server` code to remove the burden from clients
16
16
  */
17
17
  export namespace ContextURL {
18
- export const INCREMENTAL_PREBUILD_PREFIX = "incremental-prebuild";
19
18
  export const PREBUILD_PREFIX = "prebuild";
20
19
  export const IMAGEBUILD_PREFIX = "imagebuild";
21
20
  export const SNAPSHOT_PREFIX = "snapshot";
@@ -91,7 +90,6 @@ export namespace ContextURL {
91
90
  const firstSegment = segments[0];
92
91
  if (
93
92
  firstSegment === PREBUILD_PREFIX ||
94
- firstSegment === INCREMENTAL_PREBUILD_PREFIX ||
95
93
  firstSegment === IMAGEBUILD_PREFIX ||
96
94
  firstSegment === SNAPSHOT_PREFIX ||
97
95
  firstSegment.startsWith(REFERRER_PREFIX)
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { interfaces } from "inversify";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { suite, test } from "mocha-typescript";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import * as crypto from "crypto";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { injectable, inject } from "inversify";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { injectable, inject } from "inversify";
package/src/env.ts CHANGED
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { injectable } from "inversify";
8
8
 
9
9
  @injectable()
10
- export abstract class AbstractComponentEnv {
11
- }
10
+ export abstract class AbstractComponentEnv {}
12
11
 
13
12
  export function getEnvVar(name: string, defaultValue?: string): string {
14
13
  const value = process.env[name] || defaultValue;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
  import { Attributes, Client } from "./types";
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { Client } from "./types";
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { Attributes, Client } from "./types";
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { BillingTier, User } from "../protocol";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { suite, test } from "mocha-typescript";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { injectable } from "inversify";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import {
@@ -26,6 +26,7 @@ import {
26
26
  PrebuiltWorkspace,
27
27
  UserSSHPublicKeyValue,
28
28
  SSHPublicKeyValue,
29
+ IDESettings,
29
30
  } from "./protocol";
30
31
  import {
31
32
  Team,
@@ -58,7 +59,6 @@ import {
58
59
  } from "./team-subscription-protocol";
59
60
  import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from "./analytics";
60
61
  import { IDEServer } from "./ide-protocol";
61
- import { InstallationAdminSettings, TelemetryData } from "./installation-admin-protocol";
62
62
  import { ListUsageRequest, ListUsageResponse, CostCenterJSON } from "./usage";
63
63
  import { SupportedWorkspaceClass } from "./workspace-class";
64
64
  import { BillingMode } from "./billing-mode";
@@ -175,11 +175,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
175
175
  resetGenericInvite(inviteId: string): Promise<TeamMembershipInvite>;
176
176
  deleteTeam(teamId: string): Promise<void>;
177
177
 
178
- // Admin Settings
179
- adminGetSettings(): Promise<InstallationAdminSettings>;
180
- adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>;
181
- adminGetTelemetryData(): Promise<TelemetryData>;
182
-
183
178
  // Projects
184
179
  getProviderRepositoriesForUser(params: GetProviderRepositoriesParams): Promise<ProviderRepository[]>;
185
180
  createProject(params: CreateProjectParams): Promise<Project>;
@@ -420,16 +415,20 @@ export namespace GitpodServer {
420
415
  export interface GetAccountStatementOptions {
421
416
  date?: string;
422
417
  }
423
- export interface CreateWorkspaceOptions {
418
+ export interface CreateWorkspaceOptions extends StartWorkspaceOptions {
424
419
  contextUrl: string;
420
+
425
421
  // whether running workspaces on the same context should be ignored. If false (default) users will be asked.
426
422
  ignoreRunningWorkspaceOnSameCommit?: boolean;
427
423
  ignoreRunningPrebuild?: boolean;
428
424
  allowUsingPreviousPrebuilds?: boolean;
429
425
  forceDefaultConfig?: boolean;
430
426
  }
427
+
431
428
  export interface StartWorkspaceOptions {
432
- forceDefaultImage: boolean;
429
+ forceDefaultImage?: boolean;
430
+ workspaceClass?: string;
431
+ ideSettings?: IDESettings;
433
432
  }
434
433
  export interface TakeSnapshotOptions {
435
434
  workspaceId: string;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export enum HeadlessWorkspaceEventType {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { Event } from "./util/event";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  /**
@@ -87,7 +87,7 @@ export interface IDEOption {
87
87
  label?: string;
88
88
 
89
89
  /**
90
- * Notes to the IDE option that are renderd in the preferences when a user
90
+ * Notes to the IDE option that are rendered in the preferences when a user
91
91
  * chooses this IDE.
92
92
  */
93
93
  notes?: string[];
@@ -126,4 +126,14 @@ export interface IDEOption {
126
126
  * The latest plugin image ref for the latest IDE image, this image ref always resolve to digest.
127
127
  */
128
128
  pluginLatestImage?: string;
129
+
130
+ /**
131
+ * ImageVersion the semantic version of the IDE image.
132
+ */
133
+ imageVersion?: string;
134
+
135
+ /**
136
+ * LatestImageVersion the semantic version of the latest IDE image.
137
+ */
138
+ latestImageVersion?: string;
129
139
  }
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export * from "./protocol";
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { v4 as uuidv4 } from "uuid";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export interface LicenseValidationResult {
@@ -16,7 +16,6 @@ import ReconnectingWebSocket, { Event } from "reconnecting-websocket";
16
16
  export interface WebSocketOptions {
17
17
  onerror?: (event: Event) => void;
18
18
  onListening?: (socket: ReconnectingWebSocket) => void;
19
- subProtocol?: string;
20
19
  }
21
20
 
22
21
  export class WebSocketConnectionProvider {
@@ -63,7 +62,7 @@ export class WebSocketConnectionProvider {
63
62
  */
64
63
  listen(handler: ConnectionHandler, eventHandler: ConnectionEventHandler, options?: WebSocketOptions): WebSocket {
65
64
  const url = handler.path;
66
- const webSocket = this.createWebSocket(url, options);
65
+ const webSocket = this.createWebSocket(url);
67
66
 
68
67
  const logger = this.createLogger();
69
68
  if (options && options.onerror) {
@@ -87,8 +86,8 @@ export class WebSocketConnectionProvider {
87
86
  /**
88
87
  * Creates a web socket for the given url
89
88
  */
90
- createWebSocket(url: string, options?: WebSocketOptions): WebSocket {
91
- return new ReconnectingWebSocket(url, options?.subProtocol, {
89
+ createWebSocket(url: string): WebSocket {
90
+ return new ReconnectingWebSocket(url, undefined, {
92
91
  maxReconnectionDelay: 10000,
93
92
  minReconnectionDelay: 1000,
94
93
  reconnectionDelayGrowFactor: 1.3,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { Message } from "vscode-jsonrpc/lib/messages";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { injectable } from "inversify";
@@ -14,6 +14,7 @@ export class PrometheusClientCallMetrics implements IClientCallMetrics {
14
14
  readonly sentCounter: prometheusClient.Counter<string>;
15
15
  readonly receivedCounter: prometheusClient.Counter<string>;
16
16
  readonly handledCounter: prometheusClient.Counter<string>;
17
+ readonly handledSecondsHistogram: prometheusClient.Histogram<string>;
17
18
 
18
19
  constructor() {
19
20
  this.startedCounter = new prometheusClient.Counter({
@@ -40,6 +41,12 @@ export class PrometheusClientCallMetrics implements IClientCallMetrics {
40
41
  labelNames: ["grpc_service", "grpc_method", "grpc_type", "grpc_code"],
41
42
  registers: [prometheusClient.register],
42
43
  });
44
+ this.handledSecondsHistogram = new prometheusClient.Histogram({
45
+ name: "grpc_client_handling_seconds",
46
+ help: "Histogram of response latency (seconds) of the gRPC until it is finished by the application.",
47
+ labelNames: ["grpc_service", "grpc_method", "grpc_type", "grpc_code"],
48
+ registers: [prometheusClient.register],
49
+ });
43
50
  }
44
51
 
45
52
  started(labels: IGrpcCallMetricsLabels): void {
@@ -74,4 +81,14 @@ export class PrometheusClientCallMetrics implements IClientCallMetrics {
74
81
  grpc_code: labels.code,
75
82
  });
76
83
  }
84
+
85
+ startHandleTimer(
86
+ labels: IGrpcCallMetricsLabelsWithCode,
87
+ ): (labels?: Partial<Record<string, string | number>> | undefined) => number {
88
+ return this.handledSecondsHistogram.startTimer({
89
+ grpc_service: labels.service,
90
+ grpc_method: labels.method,
91
+ grpc_type: labels.type,
92
+ });
93
+ }
77
94
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export namespace ErrorCodes {
@@ -35,6 +35,9 @@ export namespace ErrorCodes {
35
35
  // 430 Repository not whitelisted (custom status code)
36
36
  export const REPOSITORY_NOT_WHITELISTED = 430;
37
37
 
38
+ // 440 Prebuilds now always require a project (custom status code)
39
+ export const PROJECT_REQUIRED = 440;
40
+
38
41
  // 450 Payment error
39
42
  export const PAYMENT_ERROR = 450;
40
43
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export interface OssAllowList {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export namespace PaymentProtocol {
package/src/permission.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  // see below for explanation
package/src/plans.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  export type Currency = "USD" | "EUR";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { suite, test } from "mocha-typescript";
package/src/protocol.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { WorkspaceInstance, PortVisibility } from "./workspace-instance";
@@ -255,8 +255,8 @@ export type IDESettings = {
255
255
  };
256
256
 
257
257
  export interface WorkspaceClasses {
258
- regular: string;
259
- prebuild: string;
258
+ regular?: string;
259
+ prebuild?: string;
260
260
  }
261
261
 
262
262
  export interface UserPlatform {
@@ -293,17 +293,13 @@ export type BillingTier = "paid" | "free";
293
293
  */
294
294
  export const WorkspaceFeatureFlags = {
295
295
  full_workspace_backup: undefined,
296
- persistent_volume_claim: undefined,
297
296
  workspace_class_limiting: undefined,
298
297
  workspace_connection_limiting: undefined,
299
298
  workspace_psi: undefined,
300
299
  };
301
300
  export type NamedWorkspaceFeatureFlag = keyof typeof WorkspaceFeatureFlags;
302
301
  export namespace NamedWorkspaceFeatureFlag {
303
- export const WORKSPACE_PERSISTED_FEATTURE_FLAGS: NamedWorkspaceFeatureFlag[] = [
304
- "full_workspace_backup",
305
- "persistent_volume_claim",
306
- ];
302
+ export const WORKSPACE_PERSISTED_FEATTURE_FLAGS: NamedWorkspaceFeatureFlag[] = ["full_workspace_backup"];
307
303
  export function isWorkspacePersisted(ff: NamedWorkspaceFeatureFlag): boolean {
308
304
  return WORKSPACE_PERSISTED_FEATTURE_FLAGS.includes(ff);
309
305
  }
@@ -651,18 +647,6 @@ export interface Snapshot {
651
647
  message?: string;
652
648
  }
653
649
 
654
- export interface VolumeSnapshot {
655
- id: string;
656
- workspaceId: string;
657
- creationTime: string;
658
- volumeHandle: string;
659
- }
660
-
661
- export interface VolumeSnapshotWithWSType {
662
- vs: VolumeSnapshot;
663
- wsType: WorkspaceType;
664
- }
665
-
666
650
  export type SnapshotState = "pending" | "available" | "error";
667
651
 
668
652
  export interface Workspace {
@@ -1127,7 +1111,7 @@ export interface WithCommitHistory {
1127
1111
 
1128
1112
  export interface StartPrebuildContext extends WorkspaceContext, WithCommitHistory {
1129
1113
  actual: WorkspaceContext;
1130
- project?: Project;
1114
+ project: Project;
1131
1115
  branch?: string;
1132
1116
  }
1133
1117
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
7
  import { suite, test } from "mocha-typescript";