@gitpod/gitpod-protocol 0.1.5-sje-installer-proxy-config-backup.0 → 0.1.5-sje-licensor-deprecation.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.
- package/data/gitpod-schema.json +35 -0
- package/lib/accounting-protocol.d.ts +1 -1
- package/lib/accounting-protocol.js +1 -1
- package/lib/admin-protocol.d.ts +11 -2
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js +1 -1
- package/lib/admin-protocol.js.map +1 -1
- package/lib/analytics.d.ts +1 -1
- package/lib/analytics.js +1 -1
- package/lib/attribution.d.ts +5 -1
- package/lib/attribution.d.ts.map +1 -1
- package/lib/attribution.js +15 -1
- package/lib/attribution.js.map +1 -1
- package/lib/auth.d.ts +1 -1
- package/lib/auth.js +1 -1
- package/lib/billing-mode.d.ts +7 -2
- package/lib/billing-mode.d.ts.map +1 -1
- package/lib/billing-mode.js +9 -1
- package/lib/billing-mode.js.map +1 -1
- package/lib/blocked-repositories-protocol.d.ts +1 -1
- package/lib/blocked-repositories-protocol.js +1 -1
- package/lib/context-url.d.ts +1 -2
- package/lib/context-url.d.ts.map +1 -1
- package/lib/context-url.js +1 -3
- package/lib/context-url.js.map +1 -1
- package/lib/context-url.spec.d.ts +1 -3
- package/lib/context-url.spec.d.ts.map +1 -1
- package/lib/context-url.spec.js +1 -29
- package/lib/context-url.spec.js.map +1 -1
- package/lib/encryption/container-module.d.ts +1 -1
- package/lib/encryption/container-module.js +1 -1
- package/lib/encryption/encryption-engine.d.ts +1 -1
- package/lib/encryption/encryption-engine.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.js +4 -4
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.d.ts +1 -1
- package/lib/encryption/encryption-engine.spec.js +2 -2
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.d.ts +1 -1
- package/lib/encryption/encryption-service.js +1 -1
- package/lib/encryption/key-provider.d.ts +1 -1
- package/lib/encryption/key-provider.js +2 -2
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/env.d.ts +1 -1
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +1 -1
- package/lib/env.js.map +1 -1
- package/lib/experiments/always-default.d.ts +1 -1
- package/lib/experiments/configcat-server.d.ts +1 -1
- package/lib/experiments/configcat-server.d.ts.map +1 -1
- package/lib/experiments/configcat-server.js +2 -1
- package/lib/experiments/configcat-server.js.map +1 -1
- package/lib/experiments/configcat.d.ts +2 -3
- package/lib/experiments/configcat.d.ts.map +1 -1
- package/lib/experiments/configcat.js +5 -7
- package/lib/experiments/configcat.js.map +1 -1
- package/lib/experiments/types.d.ts +3 -4
- package/lib/experiments/types.d.ts.map +1 -1
- package/lib/experiments/types.js +1 -1
- package/lib/experiments/types.js.map +1 -1
- package/lib/gitpod-file-parser.d.ts +1 -1
- package/lib/gitpod-file-parser.js +1 -1
- package/lib/gitpod-file-parser.spec.d.ts +1 -1
- package/lib/gitpod-file-parser.spec.js +1 -1
- package/lib/gitpod-service.d.ts +23 -36
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +13 -1
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +1 -1
- package/lib/headless-workspace-log.js +1 -1
- package/lib/ide-frontend-service.d.ts +1 -1
- package/lib/ide-frontend-service.js +1 -1
- package/lib/ide-protocol.d.ts +15 -2
- package/lib/ide-protocol.d.ts.map +1 -1
- package/lib/ide-protocol.js +11 -1
- package/lib/ide-protocol.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/installation-admin-protocol.d.ts +1 -1
- package/lib/installation-admin-protocol.js +1 -1
- package/lib/license-protocol.d.ts +1 -1
- package/lib/license-protocol.js +1 -1
- package/lib/messaging/browser/window-connection.d.ts +1 -1
- package/lib/messaging/browser/window-connection.js +1 -1
- package/lib/messaging/client-call-metrics.d.ts +3 -1
- package/lib/messaging/client-call-metrics.d.ts.map +1 -1
- package/lib/messaging/client-call-metrics.js +14 -1
- package/lib/messaging/client-call-metrics.js.map +1 -1
- package/lib/messaging/error.d.ts +4 -1
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +7 -1
- package/lib/messaging/error.js.map +1 -1
- package/lib/oss-allowlist.d.ts +1 -1
- package/lib/oss-allowlist.js +1 -1
- package/lib/payment-protocol.d.ts +1 -1
- package/lib/payment-protocol.js +1 -1
- package/lib/permission.d.ts +1 -1
- package/lib/permission.js +1 -1
- package/lib/plans.d.ts +1 -1
- package/lib/plans.js +3 -3
- package/lib/plans.js.map +1 -1
- package/lib/protocol.d.ts +42 -46
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +19 -22
- package/lib/protocol.js.map +1 -1
- package/lib/protocol.spec.d.ts +1 -1
- package/lib/protocol.spec.js +1 -1
- package/lib/snapshot-url.d.ts +1 -1
- package/lib/snapshot-url.js +1 -1
- package/lib/snapshot-url.spec.d.ts +1 -1
- package/lib/snapshot-url.spec.js +1 -1
- package/lib/team-subscription-protocol.d.ts +1 -1
- package/lib/team-subscription-protocol.js +1 -1
- package/lib/teams-projects-protocol.d.ts +6 -4
- package/lib/teams-projects-protocol.d.ts.map +1 -1
- package/lib/teams-projects-protocol.js +1 -1
- package/lib/teams-projects-protocol.js.map +1 -1
- package/lib/typings/globals.d.ts +1 -1
- package/lib/typings/globals.js +1 -1
- package/lib/usage.d.ts +14 -3
- package/lib/usage.d.ts.map +1 -1
- package/lib/usage.js +8 -2
- package/lib/usage.js.map +1 -1
- package/lib/util/analytics.d.ts +1 -1
- package/lib/util/analytics.js +1 -1
- package/lib/util/async-iterator.d.ts +1 -1
- package/lib/util/async-iterator.js +1 -1
- package/lib/util/cancelable.d.ts +1 -1
- package/lib/util/cancelable.js +1 -1
- package/lib/util/date-time.d.ts +1 -1
- package/lib/util/date-time.js +1 -1
- package/lib/util/debug-app.d.ts +1 -1
- package/lib/util/debug-app.js +1 -1
- package/lib/util/deep-partial.d.ts +1 -1
- package/lib/util/deep-partial.js +1 -1
- package/lib/util/deferred.d.ts +1 -1
- package/lib/util/deferred.js +1 -1
- package/lib/util/garbage-collected-cache.d.ts +1 -1
- package/lib/util/garbage-collected-cache.js +1 -1
- package/lib/util/generate-workspace-id.d.ts +1 -1
- package/lib/util/generate-workspace-id.js +1 -1
- package/lib/util/generate-workspace-id.spec.d.ts +1 -1
- package/lib/util/generate-workspace-id.spec.js +1 -1
- package/lib/util/gitpod-cookie.d.ts +1 -1
- package/lib/util/gitpod-cookie.js +1 -1
- package/lib/util/gitpod-host-url.d.ts +3 -1
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +11 -4
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.d.ts +1 -1
- package/lib/util/gitpod-host-url.spec.js +1 -1
- package/lib/util/grpc.d.ts +2 -1
- package/lib/util/grpc.d.ts.map +1 -1
- package/lib/util/grpc.js +1 -1
- package/lib/util/grpc.js.map +1 -1
- package/lib/util/jaeger-client-types.d.ts +1 -1
- package/lib/util/jaeger-client-types.js +1 -1
- package/lib/util/logging.d.ts +1 -1
- package/lib/util/logging.js +1 -1
- package/lib/util/logging.spec.d.ts +1 -1
- package/lib/util/logging.spec.js +1 -1
- package/lib/util/make-link.d.ts +1 -1
- package/lib/util/make-link.js +1 -1
- package/lib/util/nice-grpc.d.ts +9 -0
- package/lib/util/nice-grpc.d.ts.map +1 -0
- package/lib/util/nice-grpc.js +121 -0
- package/lib/util/nice-grpc.js.map +1 -0
- package/lib/util/parse-workspace-id.d.ts +1 -1
- package/lib/util/parse-workspace-id.js +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts +1 -1
- package/lib/util/parse-workspace-id.spec.js +1 -1
- package/lib/util/queue.d.ts +1 -1
- package/lib/util/queue.js +1 -1
- package/lib/util/queue.spec.d.ts +1 -1
- package/lib/util/queue.spec.js +1 -1
- package/lib/util/repeat.d.ts +1 -1
- package/lib/util/repeat.js +1 -1
- package/lib/util/semaphore.d.ts +1 -1
- package/lib/util/semaphore.js +1 -1
- package/lib/util/skip-if.d.ts +1 -1
- package/lib/util/skip-if.js +1 -1
- package/lib/util/timeutil.d.ts +1 -1
- package/lib/util/timeutil.js +1 -1
- package/lib/util/timeutil.spec.d.ts +2 -1
- package/lib/util/timeutil.spec.d.ts.map +1 -1
- package/lib/util/timeutil.spec.js +25 -1
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +1 -1
- package/lib/util/tracing.js +1 -1
- package/lib/util/tracing.spec.d.ts +1 -1
- package/lib/util/tracing.spec.js +1 -1
- package/lib/util/workspace-port-authentication.d.ts +1 -1
- package/lib/util/workspace-port-authentication.js +1 -1
- package/lib/webhook-event.d.ts +1 -1
- package/lib/webhook-event.js +1 -1
- package/lib/workspace-class.d.ts +2 -2
- package/lib/workspace-class.d.ts.map +1 -1
- package/lib/workspace-class.js +1 -1
- package/lib/workspace-cluster.d.ts +7 -6
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js +1 -1
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/workspace-instance.d.ts +2 -1
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/workspace-instance.js +1 -1
- package/lib/wsready.d.ts +10 -4
- package/lib/wsready.d.ts.map +1 -1
- package/lib/wsready.js +3 -1
- package/lib/wsready.js.map +1 -1
- package/package.json +3 -1
- package/pkg-yarn.lock +3 -1
- package/provenance-bundle.jsonl +1 -1
- package/src/accounting-protocol.ts +1 -1
- package/src/admin-protocol.ts +15 -2
- package/src/analytics.ts +1 -1
- package/src/attribution.ts +16 -1
- package/src/auth.ts +1 -1
- package/src/billing-mode.ts +19 -2
- package/src/blocked-repositories-protocol.ts +1 -1
- package/src/context-url.spec.ts +1 -19
- package/src/context-url.ts +1 -3
- package/src/encryption/container-module.ts +1 -1
- package/src/encryption/encryption-engine.spec.ts +2 -2
- package/src/encryption/encryption-engine.ts +8 -4
- package/src/encryption/encryption-service.ts +1 -1
- package/src/encryption/key-provider.ts +2 -2
- package/src/env.ts +2 -3
- package/src/experiments/always-default.ts +1 -1
- package/src/experiments/configcat-server.ts +2 -1
- package/src/experiments/configcat.ts +4 -6
- package/src/experiments/types.ts +5 -6
- package/src/gitpod-file-parser.spec.ts +1 -1
- package/src/gitpod-file-parser.ts +1 -1
- package/src/gitpod-service.ts +38 -40
- package/src/headless-workspace-log.ts +1 -1
- package/src/ide-frontend-service.ts +1 -1
- package/src/ide-protocol.ts +20 -2
- package/src/index.ts +1 -2
- package/src/installation-admin-protocol.ts +1 -1
- package/src/license-protocol.ts +1 -1
- package/src/messaging/browser/window-connection.ts +1 -1
- package/src/messaging/client-call-metrics.ts +18 -1
- package/src/messaging/error.ts +10 -1
- package/src/oss-allowlist.ts +1 -1
- package/src/payment-protocol.ts +1 -1
- package/src/permission.ts +1 -1
- package/src/plans.ts +3 -3
- package/src/protocol.spec.ts +1 -1
- package/src/protocol.ts +47 -57
- package/src/snapshot-url.spec.ts +1 -1
- package/src/snapshot-url.ts +1 -1
- package/src/team-subscription-protocol.ts +1 -1
- package/src/teams-projects-protocol.ts +9 -5
- package/src/typings/globals.ts +1 -1
- package/src/usage.ts +16 -3
- package/src/util/analytics.ts +1 -1
- package/src/util/async-iterator.ts +1 -1
- package/src/util/cancelable.ts +1 -1
- package/src/util/date-time.ts +1 -1
- package/src/util/debug-app.ts +1 -1
- package/src/util/deep-partial.ts +1 -1
- package/src/util/deferred.ts +1 -1
- package/src/util/garbage-collected-cache.ts +1 -1
- package/src/util/generate-workspace-id.spec.ts +1 -1
- package/src/util/generate-workspace-id.ts +1 -1
- package/src/util/gitpod-cookie.ts +1 -1
- package/src/util/gitpod-host-url.spec.ts +1 -1
- package/src/util/gitpod-host-url.ts +12 -4
- package/src/util/grpc.ts +4 -1
- package/src/util/jaeger-client-types.ts +1 -1
- package/src/util/logging.spec.ts +1 -1
- package/src/util/logging.ts +1 -1
- package/src/util/make-link.ts +1 -1
- package/src/util/nice-grpc.ts +96 -0
- package/src/util/parse-workspace-id.spec.ts +1 -1
- package/src/util/parse-workspace-id.ts +1 -1
- package/src/util/queue.spec.ts +1 -1
- package/src/util/queue.ts +1 -1
- package/src/util/repeat.ts +1 -1
- package/src/util/semaphore.ts +1 -1
- package/src/util/skip-if.ts +1 -1
- package/src/util/timeutil.spec.ts +22 -1
- package/src/util/timeutil.ts +1 -1
- package/src/util/tracing.spec.ts +1 -1
- package/src/util/tracing.ts +1 -1
- package/src/util/workspace-port-authentication.ts +1 -1
- package/src/webhook-event.ts +1 -1
- package/src/workspace-class.ts +2 -2
- package/src/workspace-cluster.ts +12 -7
- package/src/workspace-instance.ts +7 -1
- package/src/wsready.ts +12 -6
- package/lib/email-protocol.d.ts +0 -49
- package/lib/email-protocol.d.ts.map +0 -1
- package/lib/email-protocol.js +0 -28
- package/lib/email-protocol.js.map +0 -1
- package/src/email-protocol.ts +0 -65
package/src/billing-mode.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -26,6 +26,16 @@ export namespace BillingMode {
|
|
|
26
26
|
);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
export function showTeamSubscriptionUI(billingMode?: BillingMode): boolean {
|
|
30
|
+
if (!billingMode) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return (
|
|
34
|
+
billingMode.mode === "chargebee" ||
|
|
35
|
+
(billingMode.mode === "usage-based" && !!billingMode.hasChargebeeTeamSubscription)
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
29
39
|
export function canSetWorkspaceClass(billingMode?: BillingMode): boolean {
|
|
30
40
|
if (!billingMode) {
|
|
31
41
|
return false;
|
|
@@ -49,7 +59,14 @@ interface None {
|
|
|
49
59
|
/** Sessions is handled with old subscription logic based on Chargebee */
|
|
50
60
|
interface Chargebee {
|
|
51
61
|
mode: "chargebee";
|
|
62
|
+
|
|
63
|
+
/** True iff this is a team, and is based on a paid plan. Currently only set for teams! */
|
|
64
|
+
paid?: boolean;
|
|
65
|
+
|
|
52
66
|
canUpgradeToUBB?: boolean;
|
|
67
|
+
|
|
68
|
+
/** Name of team(s) that block switching to usage-based */
|
|
69
|
+
teamNames?: string[];
|
|
53
70
|
}
|
|
54
71
|
|
|
55
72
|
/** Session is handld with new usage-based logic */
|
|
@@ -62,6 +79,6 @@ interface UsageBased {
|
|
|
62
79
|
/** User is already converted, but is member with at least one Chargebee-based "Team Plan" */
|
|
63
80
|
hasChargebeeTeamPlan?: boolean;
|
|
64
81
|
|
|
65
|
-
/** User is already converted, but is member in at least one Chargebee-based "Team Subscription" */
|
|
82
|
+
/** User is already converted, but is member or owner in at least one Chargebee-based "Team Subscription" */
|
|
66
83
|
hasChargebeeTeamSubscription?: boolean;
|
|
67
84
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
export interface BlockedRepository {
|
package/src/context-url.spec.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
|
|
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;
|
package/src/context-url.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
|
|
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
|
|
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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { suite, test } from "mocha-typescript";
|
|
@@ -24,7 +24,7 @@ class TestEncryptionEngineImpl {
|
|
|
24
24
|
|
|
25
25
|
@test basicSymmetry() {
|
|
26
26
|
const plaintext = "12345678901234567890";
|
|
27
|
-
const key =
|
|
27
|
+
const key = Buffer.from(this.testkey, "base64");
|
|
28
28
|
|
|
29
29
|
const cut = new EncryptionEngineImpl();
|
|
30
30
|
const encryptedData = cut.encrypt(plaintext, key);
|
|
@@ -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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as crypto from "crypto";
|
|
@@ -40,7 +40,7 @@ export class EncryptionEngineImpl {
|
|
|
40
40
|
encrypt(data: string, key: Buffer): EncryptedData {
|
|
41
41
|
const iv = crypto.randomBytes(16);
|
|
42
42
|
const cipher = crypto.createCipheriv(this.algorithm, key, iv);
|
|
43
|
-
const encrypted = cipher.update(
|
|
43
|
+
const encrypted = cipher.update(Buffer.from(data, "utf8"));
|
|
44
44
|
const finalEncrypted = Buffer.concat([encrypted, cipher.final()]);
|
|
45
45
|
return {
|
|
46
46
|
data: finalEncrypted.toString(this.enc),
|
|
@@ -51,8 +51,12 @@ export class EncryptionEngineImpl {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
decrypt(encryptedData: EncryptedData, key: Buffer): string {
|
|
54
|
-
const decipher = crypto.createDecipheriv(
|
|
55
|
-
|
|
54
|
+
const decipher = crypto.createDecipheriv(
|
|
55
|
+
this.algorithm,
|
|
56
|
+
key,
|
|
57
|
+
Buffer.from(encryptedData.keyParams.iv, this.enc),
|
|
58
|
+
);
|
|
59
|
+
let decrypted = decipher.update(Buffer.from(encryptedData.data, this.enc));
|
|
56
60
|
const finalDecrypted = Buffer.concat([decrypted, decipher.final()]);
|
|
57
61
|
return finalDecrypted.toString("utf8");
|
|
58
62
|
}
|
|
@@ -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
|
|
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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { injectable, inject } from "inversify";
|
|
@@ -71,7 +71,7 @@ export class KeyProviderImpl implements KeyProvider {
|
|
|
71
71
|
name: config.name,
|
|
72
72
|
version: config.version,
|
|
73
73
|
},
|
|
74
|
-
material:
|
|
74
|
+
material: Buffer.from(config.material, "base64"),
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
77
|
}
|
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
|
|
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
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
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
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Client } from "./types";
|
|
@@ -32,6 +32,7 @@ export function getExperimentsClientForBackend(): Client {
|
|
|
32
32
|
|
|
33
33
|
const configCatClient = configcat.createClient(sdkKey, {
|
|
34
34
|
pollIntervalSeconds: 3 * 60, // 3 minutes
|
|
35
|
+
requestTimeoutMs: 2000,
|
|
35
36
|
logger: configcat.createConsoleLogger(LogLevel.Error),
|
|
36
37
|
maxInitWaitTimeSeconds: 0,
|
|
37
38
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Attributes, Client } from "./types";
|
|
@@ -12,9 +12,8 @@ import { User } from "../protocol";
|
|
|
12
12
|
export const USER_ID_ATTRIBUTE = "user_id";
|
|
13
13
|
export const PROJECT_ID_ATTRIBUTE = "project_id";
|
|
14
14
|
export const TEAM_ID_ATTRIBUTE = "team_id";
|
|
15
|
-
export const TEAM_IDS_ATTRIBUTE = "team_ids";
|
|
16
15
|
export const TEAM_NAME_ATTRIBUTE = "team_name";
|
|
17
|
-
export const
|
|
16
|
+
export const BILLING_TIER_ATTRIBUTE = "billing_tier";
|
|
18
17
|
|
|
19
18
|
export class ConfigCatClient implements Client {
|
|
20
19
|
private client: IConfigCatClient;
|
|
@@ -49,9 +48,8 @@ export function attributesToUser(attributes: Attributes): ConfigCatUser {
|
|
|
49
48
|
if (attributes.teamName) {
|
|
50
49
|
custom[TEAM_NAME_ATTRIBUTE] = attributes.teamName;
|
|
51
50
|
}
|
|
52
|
-
if (attributes.
|
|
53
|
-
custom[
|
|
54
|
-
custom[TEAM_IDS_ATTRIBUTE] = attributes.teams.map((t) => t.id).join(",");
|
|
51
|
+
if (attributes.billingTier) {
|
|
52
|
+
custom[BILLING_TIER_ATTRIBUTE] = attributes.billingTier;
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
return new ConfigCatUser(userId, email, "", custom);
|
package/src/experiments/types.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { User } from "../protocol";
|
|
8
|
-
import { Team } from "../teams-projects-protocol";
|
|
7
|
+
import { BillingTier, User } from "../protocol";
|
|
9
8
|
|
|
10
9
|
export const Client = Symbol("Client");
|
|
11
10
|
|
|
@@ -15,6 +14,9 @@ export interface Attributes {
|
|
|
15
14
|
// user.id is mapped to ConfigCat's "identifier" + "custom.user_id"
|
|
16
15
|
user?: User | { id: string; email?: string };
|
|
17
16
|
|
|
17
|
+
// The BillingTier of this particular user
|
|
18
|
+
billingTier?: BillingTier;
|
|
19
|
+
|
|
18
20
|
// Currently selected Gitpod Project ID (mapped to "custom.project_id")
|
|
19
21
|
projectId?: string;
|
|
20
22
|
|
|
@@ -22,9 +24,6 @@ export interface Attributes {
|
|
|
22
24
|
teamId?: string;
|
|
23
25
|
// Currently selected Gitpod Team Name (mapped to "custom.team_name")
|
|
24
26
|
teamName?: string;
|
|
25
|
-
|
|
26
|
-
// All the Gitpod Teams that the user is a member (or owner) of (mapped to "custom.team_names" and "custom.team_ids")
|
|
27
|
-
teams?: Team[];
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
export interface Client {
|
|
@@ -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
|
|
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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { injectable } from "inversify";
|
package/src/gitpod-service.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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import {
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
WhitelistedRepository,
|
|
13
13
|
WorkspaceImageBuild,
|
|
14
14
|
AuthProviderInfo,
|
|
15
|
-
CreateWorkspaceMode,
|
|
16
15
|
Token,
|
|
17
16
|
UserEnvVarValue,
|
|
18
17
|
Terms,
|
|
@@ -27,6 +26,7 @@ import {
|
|
|
27
26
|
PrebuiltWorkspace,
|
|
28
27
|
UserSSHPublicKeyValue,
|
|
29
28
|
SSHPublicKeyValue,
|
|
29
|
+
IDESettings,
|
|
30
30
|
} from "./protocol";
|
|
31
31
|
import {
|
|
32
32
|
Team,
|
|
@@ -59,8 +59,7 @@ import {
|
|
|
59
59
|
} from "./team-subscription-protocol";
|
|
60
60
|
import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from "./analytics";
|
|
61
61
|
import { IDEServer } from "./ide-protocol";
|
|
62
|
-
import {
|
|
63
|
-
import { ListUsageRequest, ListUsageResponse } from "./usage";
|
|
62
|
+
import { ListUsageRequest, ListUsageResponse, CostCenterJSON } from "./usage";
|
|
64
63
|
import { SupportedWorkspaceClass } from "./workspace-class";
|
|
65
64
|
import { BillingMode } from "./billing-mode";
|
|
66
65
|
|
|
@@ -70,6 +69,8 @@ export interface GitpodClient {
|
|
|
70
69
|
|
|
71
70
|
onPrebuildUpdate(update: PrebuildWithStatus): void;
|
|
72
71
|
|
|
72
|
+
onNotificationUpdated(): void;
|
|
73
|
+
|
|
73
74
|
onCreditAlert(creditAlert: CreditAlert): void;
|
|
74
75
|
|
|
75
76
|
//#region propagating reconnection to iframe
|
|
@@ -163,6 +164,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
163
164
|
deleteSSHPublicKey(id: string): Promise<void>;
|
|
164
165
|
|
|
165
166
|
// Teams
|
|
167
|
+
getTeam(teamId: string): Promise<Team>;
|
|
166
168
|
getTeams(): Promise<Team[]>;
|
|
167
169
|
getTeamMembers(teamId: string): Promise<TeamMemberInfo[]>;
|
|
168
170
|
createTeam(name: string): Promise<Team>;
|
|
@@ -171,12 +173,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
171
173
|
removeTeamMember(teamId: string, userId: string): Promise<void>;
|
|
172
174
|
getGenericInvite(teamId: string): Promise<TeamMembershipInvite>;
|
|
173
175
|
resetGenericInvite(inviteId: string): Promise<TeamMembershipInvite>;
|
|
174
|
-
deleteTeam(teamId: string
|
|
175
|
-
|
|
176
|
-
// Admin Settings
|
|
177
|
-
adminGetSettings(): Promise<InstallationAdminSettings>;
|
|
178
|
-
adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>;
|
|
179
|
-
adminGetTelemetryData(): Promise<TelemetryData>;
|
|
176
|
+
deleteTeam(teamId: string): Promise<void>;
|
|
180
177
|
|
|
181
178
|
// Projects
|
|
182
179
|
getProviderRepositoriesForUser(params: GetProviderRepositoriesParams): Promise<ProviderRepository[]>;
|
|
@@ -191,11 +188,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
191
188
|
getPrebuild(prebuildId: string): Promise<PrebuildWithStatus | undefined>;
|
|
192
189
|
triggerPrebuild(projectId: string, branchName: string | null): Promise<StartPrebuildResult>;
|
|
193
190
|
cancelPrebuild(projectId: string, prebuildId: string): Promise<void>;
|
|
194
|
-
fetchProjectRepositoryConfiguration(projectId: string): Promise<string | undefined>;
|
|
195
|
-
guessProjectConfiguration(projectId: string): Promise<string | undefined>;
|
|
196
|
-
fetchRepositoryConfiguration(cloneUrl: string): Promise<string | undefined>;
|
|
197
|
-
guessRepositoryConfiguration(cloneUrl: string): Promise<string | undefined>;
|
|
198
|
-
setProjectConfiguration(projectId: string, configString: string): Promise<void>;
|
|
199
191
|
updateProjectPartial(partialProject: PartialProject): Promise<void>;
|
|
200
192
|
setProjectEnvironmentVariable(projectId: string, name: string, value: string, censored: boolean): Promise<void>;
|
|
201
193
|
getProjectEnvironmentVariables(projectId: string): Promise<ProjectEnvVar[]>;
|
|
@@ -211,7 +203,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
211
203
|
deleteGitpodToken(tokenHash: string): Promise<void>;
|
|
212
204
|
|
|
213
205
|
// misc
|
|
214
|
-
sendFeedback(feedback: string): Promise<string | undefined>;
|
|
215
206
|
isGitHubAppEnabled(): Promise<boolean>;
|
|
216
207
|
registerGithubApp(installationId: string): Promise<void>;
|
|
217
208
|
|
|
@@ -231,16 +222,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
231
222
|
*/
|
|
232
223
|
getSnapshots(workspaceID: string): Promise<string[]>;
|
|
233
224
|
|
|
234
|
-
/**
|
|
235
|
-
* stores/updates layout information for the given workspace
|
|
236
|
-
*/
|
|
237
|
-
storeLayout(workspaceId: string, layoutData: string): Promise<void>;
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* retrieves layout information for the given workspace
|
|
241
|
-
*/
|
|
242
|
-
getLayout(workspaceId: string): Promise<string | undefined>;
|
|
243
|
-
|
|
244
225
|
guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
|
|
245
226
|
|
|
246
227
|
/**
|
|
@@ -290,17 +271,18 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
290
271
|
|
|
291
272
|
getStripePublishableKey(): Promise<string>;
|
|
292
273
|
getStripeSetupIntentClientSecret(): Promise<string>;
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
274
|
+
findStripeSubscriptionId(attributionId: string): Promise<string | undefined>;
|
|
275
|
+
createStripeCustomerIfNeeded(attributionId: string, currency: string): Promise<void>;
|
|
276
|
+
subscribeToStripe(attributionId: string, setupIntentId: string, usageLimit: number): Promise<number | undefined>;
|
|
277
|
+
getStripePortalUrl(attributionId: string): Promise<string>;
|
|
278
|
+
getCostCenter(attributionId: string): Promise<CostCenterJSON | undefined>;
|
|
279
|
+
setUsageLimit(attributionId: string, usageLimit: number): Promise<void>;
|
|
280
|
+
getUsageBalance(attributionId: string): Promise<number>;
|
|
300
281
|
|
|
301
282
|
listUsage(req: ListUsageRequest): Promise<ListUsageResponse>;
|
|
302
283
|
|
|
303
284
|
setUsageAttribution(usageAttribution: string): Promise<void>;
|
|
285
|
+
listAvailableUsageAttributionIds(): Promise<string[]>;
|
|
304
286
|
|
|
305
287
|
getBillingModeForUser(): Promise<BillingMode>;
|
|
306
288
|
getBillingModeForTeam(teamId: string): Promise<BillingMode>;
|
|
@@ -332,9 +314,7 @@ export interface RateLimiterError {
|
|
|
332
314
|
|
|
333
315
|
export interface CreateProjectParams {
|
|
334
316
|
name: string;
|
|
335
|
-
slug
|
|
336
|
-
account: string;
|
|
337
|
-
provider: string;
|
|
317
|
+
slug: string;
|
|
338
318
|
cloneUrl: string;
|
|
339
319
|
teamId?: string;
|
|
340
320
|
userId?: string;
|
|
@@ -435,17 +415,23 @@ export namespace GitpodServer {
|
|
|
435
415
|
export interface GetAccountStatementOptions {
|
|
436
416
|
date?: string;
|
|
437
417
|
}
|
|
438
|
-
export interface CreateWorkspaceOptions {
|
|
418
|
+
export interface CreateWorkspaceOptions extends StartWorkspaceOptions {
|
|
439
419
|
contextUrl: string;
|
|
440
|
-
|
|
420
|
+
|
|
421
|
+
// whether running workspaces on the same context should be ignored. If false (default) users will be asked.
|
|
422
|
+
ignoreRunningWorkspaceOnSameCommit?: boolean;
|
|
423
|
+
ignoreRunningPrebuild?: boolean;
|
|
424
|
+
allowUsingPreviousPrebuilds?: boolean;
|
|
441
425
|
forceDefaultConfig?: boolean;
|
|
442
426
|
}
|
|
427
|
+
|
|
443
428
|
export interface StartWorkspaceOptions {
|
|
444
|
-
forceDefaultImage
|
|
429
|
+
forceDefaultImage?: boolean;
|
|
430
|
+
workspaceClass?: string;
|
|
431
|
+
ideSettings?: IDESettings;
|
|
445
432
|
}
|
|
446
433
|
export interface TakeSnapshotOptions {
|
|
447
434
|
workspaceId: string;
|
|
448
|
-
layoutData?: string;
|
|
449
435
|
/* this is here to enable backwards-compatibility and untangling rollout between workspace, IDE and meta */
|
|
450
436
|
dontWait?: boolean;
|
|
451
437
|
}
|
|
@@ -573,6 +559,18 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
573
559
|
}
|
|
574
560
|
}
|
|
575
561
|
}
|
|
562
|
+
|
|
563
|
+
onNotificationUpdated(): void {
|
|
564
|
+
for (const client of this.clients) {
|
|
565
|
+
if (client.onNotificationUpdated) {
|
|
566
|
+
try {
|
|
567
|
+
client.onNotificationUpdated();
|
|
568
|
+
} catch (error) {
|
|
569
|
+
console.error(error);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
576
574
|
}
|
|
577
575
|
|
|
578
576
|
export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
|
|
@@ -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
|
|
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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Event } from "./util/event";
|
package/src/ide-protocol.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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -36,6 +36,14 @@ export interface IDEOptions {
|
|
|
36
36
|
clients?: { [id: string]: IDEClient };
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export namespace IDEOptions {
|
|
40
|
+
export function asArray(options: IDEOptions): (IDEOption & { id: string })[] {
|
|
41
|
+
return Object.keys(options.options)
|
|
42
|
+
.map((id) => ({ ...options.options[id], id }))
|
|
43
|
+
.sort((a, b) => (a.orderKey || "").localeCompare(b.orderKey || ""));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
39
47
|
export interface IDEClient {
|
|
40
48
|
/**
|
|
41
49
|
* The default desktop IDE when the user has not specified one.
|
|
@@ -87,7 +95,7 @@ export interface IDEOption {
|
|
|
87
95
|
label?: string;
|
|
88
96
|
|
|
89
97
|
/**
|
|
90
|
-
* Notes to the IDE option that are
|
|
98
|
+
* Notes to the IDE option that are rendered in the preferences when a user
|
|
91
99
|
* chooses this IDE.
|
|
92
100
|
*/
|
|
93
101
|
notes?: string[];
|
|
@@ -126,4 +134,14 @@ export interface IDEOption {
|
|
|
126
134
|
* The latest plugin image ref for the latest IDE image, this image ref always resolve to digest.
|
|
127
135
|
*/
|
|
128
136
|
pluginLatestImage?: string;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* ImageVersion the semantic version of the IDE image.
|
|
140
|
+
*/
|
|
141
|
+
imageVersion?: string;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* LatestImageVersion the semantic version of the latest IDE image.
|
|
145
|
+
*/
|
|
146
|
+
latestImageVersion?: string;
|
|
129
147
|
}
|
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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
export * from "./protocol";
|
|
@@ -13,7 +13,6 @@ export * from "./license-protocol";
|
|
|
13
13
|
export * from "./workspace-instance";
|
|
14
14
|
export * from "./permission";
|
|
15
15
|
export * from "./admin-protocol";
|
|
16
|
-
export * from "./email-protocol";
|
|
17
16
|
export * from "./headless-workspace-log";
|
|
18
17
|
export * from "./context-url";
|
|
19
18
|
export * from "./teams-projects-protocol";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { v4 as uuidv4 } from "uuid";
|
package/src/license-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
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
export interface LicenseValidationResult {
|
|
@@ -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
|
|
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";
|