@gitpod/gitpod-protocol 0.1.5-tarun-telemetry-users.1 → 0.1.5-team-conns.3
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 +28 -2
- package/lib/accounting-protocol.d.ts +10 -10
- package/lib/accounting-protocol.d.ts.map +1 -1
- package/lib/accounting-protocol.js +22 -31
- package/lib/accounting-protocol.js.map +1 -1
- package/lib/admin-protocol.d.ts +4 -2
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js.map +1 -1
- package/lib/analytics.d.ts +4 -5
- package/lib/analytics.d.ts.map +1 -1
- package/lib/analytics.js.map +1 -1
- package/lib/auth.d.ts.map +1 -1
- package/lib/connections.d.ts +14 -0
- package/lib/connections.d.ts.map +1 -0
- package/lib/{theia-plugins.js → connections.js} +2 -2
- package/lib/connections.js.map +1 -0
- package/lib/context-url.d.ts +17 -5
- package/lib/context-url.d.ts.map +1 -1
- package/lib/context-url.js +57 -6
- package/lib/context-url.js.map +1 -1
- package/lib/context-url.spec.d.ts +2 -0
- package/lib/context-url.spec.d.ts.map +1 -1
- package/lib/context-url.spec.js +40 -4
- package/lib/context-url.spec.js.map +1 -1
- package/lib/email-protocol.d.ts +1 -1
- package/lib/email-protocol.d.ts.map +1 -1
- package/lib/email-protocol.js.map +1 -1
- package/lib/encryption/container-module.d.ts.map +1 -1
- package/lib/encryption/container-module.js +1 -1
- package/lib/encryption/container-module.js.map +1 -1
- package/lib/encryption/encryption-engine.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.js +7 -7
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +2 -3
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.d.ts.map +1 -1
- package/lib/encryption/encryption-service.js +1 -1
- package/lib/encryption/encryption-service.js.map +1 -1
- package/lib/encryption/key-provider.d.ts.map +1 -1
- package/lib/encryption/key-provider.js +7 -9
- 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 +5 -5
- package/lib/env.js.map +1 -1
- package/lib/gitpod-file-parser.d.ts.map +1 -1
- package/lib/gitpod-file-parser.js +6 -6
- package/lib/gitpod-file-parser.js.map +1 -1
- package/lib/gitpod-file-parser.spec.js +42 -39
- package/lib/gitpod-file-parser.spec.js.map +1 -1
- package/lib/gitpod-service.d.ts +29 -24
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +21 -24
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +1 -0
- package/lib/headless-workspace-log.d.ts.map +1 -1
- package/lib/headless-workspace-log.js +2 -1
- package/lib/headless-workspace-log.js.map +1 -1
- package/lib/ide-frontend-service.d.ts +1 -1
- package/lib/ide-protocol.d.ts +10 -6
- package/lib/ide-protocol.d.ts.map +1 -1
- package/lib/index.d.ts +17 -16
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/installation-admin-protocol.d.ts +3 -1
- package/lib/installation-admin-protocol.d.ts.map +1 -1
- package/lib/installation-admin-protocol.js +2 -2
- package/lib/installation-admin-protocol.js.map +1 -1
- package/lib/license-protocol.d.ts.map +1 -1
- package/lib/license-protocol.js.map +1 -1
- package/lib/messaging/browser/connection.d.ts +1 -1
- package/lib/messaging/browser/connection.d.ts.map +1 -1
- package/lib/messaging/browser/connection.js +19 -19
- package/lib/messaging/browser/connection.js.map +1 -1
- package/lib/messaging/browser/window-connection.d.ts +4 -4
- package/lib/messaging/browser/window-connection.d.ts.map +1 -1
- package/lib/messaging/browser/window-connection.js +9 -6
- package/lib/messaging/browser/window-connection.js.map +1 -1
- package/lib/messaging/client-call-metrics.d.ts +2 -2
- package/lib/messaging/client-call-metrics.d.ts.map +1 -1
- package/lib/messaging/client-call-metrics.js +20 -20
- package/lib/messaging/client-call-metrics.js.map +1 -1
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js.map +1 -1
- package/lib/messaging/handler.d.ts.map +1 -1
- package/lib/messaging/handler.js +1 -1
- package/lib/messaging/node/connection.js +8 -8
- package/lib/messaging/node/connection.js.map +1 -1
- package/lib/messaging/proxy-factory.d.ts +1 -1
- package/lib/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/messaging/proxy-factory.js +7 -9
- package/lib/messaging/proxy-factory.js.map +1 -1
- package/lib/payment-protocol.d.ts.map +1 -1
- package/lib/payment-protocol.js +1 -1
- package/lib/payment-protocol.js.map +1 -1
- package/lib/permission.d.ts +5 -2
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +30 -25
- package/lib/permission.js.map +1 -1
- package/lib/plans.d.ts +3 -3
- package/lib/plans.d.ts.map +1 -1
- package/lib/plans.js +206 -171
- package/lib/plans.js.map +1 -1
- package/lib/protocol.d.ts +51 -37
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +81 -86
- package/lib/protocol.js.map +1 -1
- package/lib/snapshot-url.spec.js.map +1 -1
- package/lib/team-subscription-protocol.d.ts +5 -3
- package/lib/team-subscription-protocol.d.ts.map +1 -1
- package/lib/team-subscription-protocol.js +4 -4
- package/lib/team-subscription-protocol.js.map +1 -1
- package/lib/teams-projects-protocol.d.ts +3 -3
- 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 +2 -2
- package/lib/typings/globals.d.ts.map +1 -1
- package/lib/util/analytics.d.ts.map +1 -1
- package/lib/util/analytics.js +12 -3
- package/lib/util/analytics.js.map +1 -1
- package/lib/util/async-iterator.d.ts.map +1 -1
- package/lib/util/async-iterator.js +3 -3
- package/lib/util/async-iterator.js.map +1 -1
- package/lib/util/cancelable.js.map +1 -1
- package/lib/util/date-time.js +6 -6
- package/lib/util/date-time.js.map +1 -1
- package/lib/util/deferred.js.map +1 -1
- package/lib/util/disposable.d.ts.map +1 -1
- package/lib/util/disposable.js +2 -2
- package/lib/util/disposable.js.map +1 -1
- package/lib/util/event.d.ts.map +1 -1
- package/lib/util/event.js +5 -3
- package/lib/util/event.js.map +1 -1
- package/lib/util/garbage-collected-cache.d.ts.map +1 -1
- package/lib/util/garbage-collected-cache.js +1 -1
- package/lib/util/garbage-collected-cache.js.map +1 -1
- package/lib/util/generate-workspace-id.d.ts.map +1 -1
- package/lib/util/generate-workspace-id.js +435 -435
- package/lib/util/generate-workspace-id.js.map +1 -1
- package/lib/util/generate-workspace-id.spec.js +10 -6
- package/lib/util/generate-workspace-id.spec.js.map +1 -1
- package/lib/util/gitpod-cookie.d.ts +1 -1
- package/lib/util/gitpod-cookie.d.ts.map +1 -1
- package/lib/util/gitpod-cookie.js +0 -3
- package/lib/util/gitpod-cookie.js.map +1 -1
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +31 -29
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.spec.js +15 -5
- package/lib/util/gitpod-host-url.spec.js.map +1 -1
- package/lib/util/grpc.d.ts.map +1 -1
- package/lib/util/grpc.js.map +1 -1
- package/lib/util/jaeger-client-types.d.ts.map +1 -1
- package/lib/util/logging.d.ts +1 -1
- package/lib/util/logging.d.ts.map +1 -1
- package/lib/util/logging.js +22 -23
- package/lib/util/logging.js.map +1 -1
- package/lib/util/make-link.js +5 -5
- package/lib/util/make-link.js.map +1 -1
- package/lib/util/parse-workspace-id.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.js +1 -2
- package/lib/util/parse-workspace-id.js.map +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.spec.js.map +1 -1
- package/lib/util/queue.spec.js +9 -6
- package/lib/util/queue.spec.js.map +1 -1
- package/lib/util/semaphore.d.ts.map +1 -1
- package/lib/util/semaphore.js.map +1 -1
- package/lib/util/skip-if.d.ts.map +1 -1
- package/lib/util/skip-if.js.map +1 -1
- package/lib/util/timeutil.d.ts.map +1 -1
- package/lib/util/timeutil.js +2 -2
- package/lib/util/timeutil.js.map +1 -1
- package/lib/util/timeutil.spec.d.ts.map +1 -1
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +8 -8
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +19 -18
- package/lib/util/tracing.js.map +1 -1
- package/lib/util/tracing.spec.js +3 -3
- package/lib/util/tracing.spec.js.map +1 -1
- package/lib/util/workspace-port-authentication.d.ts +7 -7
- package/lib/util/workspace-port-authentication.d.ts.map +1 -1
- package/lib/util/workspace-port-authentication.js +8 -11
- package/lib/util/workspace-port-authentication.js.map +1 -1
- package/lib/workspace-cluster.d.ts +8 -3
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js +16 -1
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/workspace-instance.d.ts +2 -2
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/wsready.d.ts +1 -1
- package/lib/wsready.d.ts.map +1 -1
- package/lib/wsready.js +2 -2
- package/package.json +2 -2
- package/pkg-yarn.lock +2 -2
- package/provenance-bundle.jsonl +1 -1
- package/src/accounting-protocol.ts +53 -51
- package/src/admin-protocol.ts +25 -21
- package/src/analytics.ts +26 -28
- package/src/auth.ts +2 -2
- package/src/connections.ts +16 -0
- package/src/context-url.spec.ts +37 -9
- package/src/context-url.ts +96 -40
- package/src/email-protocol.ts +5 -6
- package/src/encryption/container-module.ts +2 -3
- package/src/encryption/encryption-engine.spec.ts +9 -8
- package/src/encryption/encryption-engine.ts +14 -14
- package/src/encryption/encryption-service.ts +4 -5
- package/src/encryption/key-provider.ts +16 -19
- package/src/env.ts +9 -9
- package/src/gitpod-file-parser.spec.ts +55 -61
- package/src/gitpod-file-parser.ts +16 -17
- package/src/gitpod-service.ts +135 -99
- package/src/headless-workspace-log.ts +6 -4
- package/src/ide-frontend-service.ts +2 -2
- package/src/ide-protocol.ts +13 -8
- package/src/index.ts +17 -16
- package/src/installation-admin-protocol.ts +9 -7
- package/src/license-protocol.ts +5 -6
- package/src/messaging/browser/connection.ts +45 -47
- package/src/messaging/browser/window-connection.ts +39 -29
- package/src/messaging/client-call-metrics.ts +70 -71
- package/src/messaging/error.ts +1 -3
- package/src/messaging/handler.ts +6 -6
- package/src/messaging/node/connection.ts +8 -8
- package/src/messaging/proxy-factory.ts +23 -30
- package/src/oss-allowlist.ts +3 -3
- package/src/payment-protocol.ts +2 -2
- package/src/permission.ts +35 -32
- package/src/plans.ts +236 -189
- package/src/protocol.ts +232 -238
- package/src/snapshot-url.spec.ts +9 -7
- package/src/team-subscription-protocol.ts +33 -23
- package/src/teams-projects-protocol.ts +8 -8
- package/src/typings/globals.ts +4 -4
- package/src/util/analytics.ts +46 -24
- package/src/util/async-iterator.ts +4 -5
- package/src/util/cancelable.ts +3 -3
- package/src/util/date-time.ts +8 -8
- package/src/util/deferred.ts +6 -6
- package/src/util/disposable.ts +3 -6
- package/src/util/event.ts +9 -11
- package/src/util/garbage-collected-cache.ts +3 -6
- package/src/util/generate-workspace-id.spec.ts +18 -15
- package/src/util/generate-workspace-id.ts +453 -453
- package/src/util/gitpod-cookie.ts +8 -9
- package/src/util/gitpod-host-url.spec.ts +40 -13
- package/src/util/gitpod-host-url.ts +37 -34
- package/src/util/grpc.ts +1 -1
- package/src/util/jaeger-client-types.ts +2 -2
- package/src/util/logging.ts +49 -39
- package/src/util/make-link.ts +6 -7
- package/src/util/parse-workspace-id.spec.ts +17 -8
- package/src/util/parse-workspace-id.ts +5 -6
- package/src/util/queue.spec.ts +27 -25
- package/src/util/repeat.ts +1 -1
- package/src/util/semaphore.ts +4 -6
- package/src/util/skip-if.ts +9 -6
- package/src/util/timeutil.spec.ts +14 -15
- package/src/util/timeutil.ts +15 -11
- package/src/util/tracing.spec.ts +28 -23
- package/src/util/tracing.ts +58 -52
- package/src/util/workspace-port-authentication.ts +10 -13
- package/src/workspace-cluster.ts +24 -8
- package/src/workspace-instance.ts +27 -23
- package/src/wsready.ts +3 -3
- package/data/builtin-theia-plugins.json +0 -372
- package/lib/messaging/connection-error-handler.d.ts +0 -27
- package/lib/messaging/connection-error-handler.d.ts.map +0 -1
- package/lib/messaging/connection-error-handler.js +0 -34
- package/lib/messaging/connection-error-handler.js.map +0 -1
- package/lib/theia-plugins.d.ts +0 -11
- package/lib/theia-plugins.d.ts.map +0 -1
- package/lib/theia-plugins.js.map +0 -1
- package/src/messaging/connection-error-handler.ts +0 -62
- package/src/theia-plugins.ts +0 -11
package/src/gitpod-service.ts
CHANGED
|
@@ -5,32 +5,53 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
|
-
User,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
User,
|
|
9
|
+
WorkspaceInfo,
|
|
10
|
+
WorkspaceCreationResult,
|
|
11
|
+
WorkspaceInstanceUser,
|
|
12
|
+
WhitelistedRepository,
|
|
13
|
+
WorkspaceImageBuild,
|
|
14
|
+
AuthProviderInfo,
|
|
15
|
+
CreateWorkspaceMode,
|
|
16
|
+
Token,
|
|
17
|
+
UserEnvVarValue,
|
|
18
|
+
Terms,
|
|
19
|
+
Configuration,
|
|
20
|
+
UserInfo,
|
|
21
|
+
GitpodTokenType,
|
|
22
|
+
GitpodToken,
|
|
23
|
+
AuthProviderEntry,
|
|
24
|
+
GuessGitTokenScopesParams,
|
|
25
|
+
GuessedGitTokenScopes,
|
|
26
|
+
ProjectEnvVar,
|
|
27
|
+
} from "./protocol";
|
|
14
28
|
import {
|
|
15
|
-
Team,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
29
|
+
Team,
|
|
30
|
+
TeamMemberInfo,
|
|
31
|
+
TeamMembershipInvite,
|
|
32
|
+
Project,
|
|
33
|
+
TeamMemberRole,
|
|
34
|
+
PrebuildWithStatus,
|
|
35
|
+
StartPrebuildResult,
|
|
36
|
+
PartialProject,
|
|
37
|
+
} from "./teams-projects-protocol";
|
|
38
|
+
import { JsonRpcProxy, JsonRpcServer } from "./messaging/proxy-factory";
|
|
39
|
+
import { Disposable, CancellationTokenSource } from "vscode-jsonrpc";
|
|
40
|
+
import { HeadlessLogUrls } from "./headless-workspace-log";
|
|
41
|
+
import { WorkspaceInstance, WorkspaceInstancePort, WorkspaceInstancePhase } from "./workspace-instance";
|
|
42
|
+
import { AdminServer } from "./admin-protocol";
|
|
43
|
+
import { GitpodHostUrl } from "./util/gitpod-host-url";
|
|
44
|
+
import { WebSocketConnectionProvider } from "./messaging/browser/connection";
|
|
45
|
+
import { PermissionName } from "./permission";
|
|
46
|
+
import { LicenseService } from "./license-protocol";
|
|
47
|
+
import { Emitter } from "./util/event";
|
|
48
|
+
import { AccountStatement, CreditAlert } from "./accounting-protocol";
|
|
49
|
+
import { GithubUpgradeURL, PlanCoupon } from "./payment-protocol";
|
|
50
|
+
import { TeamSubscription, TeamSubscriptionSlot, TeamSubscriptionSlotResolved } from "./team-subscription-protocol";
|
|
51
|
+
import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from "./analytics";
|
|
52
|
+
import { IDEServer } from "./ide-protocol";
|
|
53
|
+
import { InstallationAdminSettings, TelemetryData } from "./installation-admin-protocol";
|
|
54
|
+
import { Connection } from "./connections";
|
|
34
55
|
|
|
35
56
|
export interface GitpodClient {
|
|
36
57
|
onInstanceUpdate(instance: WorkspaceInstance): void;
|
|
@@ -46,7 +67,7 @@ export interface GitpodClient {
|
|
|
46
67
|
//#endregion
|
|
47
68
|
}
|
|
48
69
|
|
|
49
|
-
export const GitpodServer = Symbol(
|
|
70
|
+
export const GitpodServer = Symbol("GitpodServer");
|
|
50
71
|
export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer, LicenseService, IDEServer {
|
|
51
72
|
// User related API
|
|
52
73
|
getLoggedInUser(): Promise<User>;
|
|
@@ -72,6 +93,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
72
93
|
getWorkspaceOwner(workspaceId: string): Promise<UserInfo | undefined>;
|
|
73
94
|
getWorkspaceUsers(workspaceId: string): Promise<WorkspaceInstanceUser[]>;
|
|
74
95
|
getFeaturedRepositories(): Promise<WhitelistedRepository[]>;
|
|
96
|
+
getSuggestedContextURLs(): Promise<string[]>;
|
|
75
97
|
/**
|
|
76
98
|
* **Security:**
|
|
77
99
|
* Sensitive information like an owner token is erased, since it allows access for all team members.
|
|
@@ -135,6 +157,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
135
157
|
// Admin Settings
|
|
136
158
|
adminGetSettings(): Promise<InstallationAdminSettings>;
|
|
137
159
|
adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>;
|
|
160
|
+
adminGetTelemetryData(): Promise<TelemetryData>;
|
|
138
161
|
|
|
139
162
|
// Projects
|
|
140
163
|
getProviderRepositoriesForUser(params: GetProviderRepositoriesParams): Promise<ProviderRepository[]>;
|
|
@@ -155,10 +178,12 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
155
178
|
setProjectEnvironmentVariable(projectId: string, name: string, value: string, censored: boolean): Promise<void>;
|
|
156
179
|
getProjectEnvironmentVariables(projectId: string): Promise<ProjectEnvVar[]>;
|
|
157
180
|
deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
|
|
181
|
+
setProjectConnection(projectId: string, connection: Connection): Promise<void>;
|
|
182
|
+
getProjectConnections(projectId: string): Promise<Connection[]>;
|
|
158
183
|
|
|
159
184
|
// content service
|
|
160
|
-
getContentBlobUploadUrl(name: string): Promise<string
|
|
161
|
-
getContentBlobDownloadUrl(name: string): Promise<string
|
|
185
|
+
getContentBlobUploadUrl(name: string): Promise<string>;
|
|
186
|
+
getContentBlobDownloadUrl(name: string): Promise<string>;
|
|
162
187
|
|
|
163
188
|
// Gitpod token
|
|
164
189
|
getGitpodTokens(): Promise<GitpodToken[]>;
|
|
@@ -195,15 +220,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
195
220
|
*/
|
|
196
221
|
getLayout(workspaceId: string): Promise<string | undefined>;
|
|
197
222
|
|
|
198
|
-
/**
|
|
199
|
-
* @param params
|
|
200
|
-
* @returns promise resolves to an URL to be used for the upload
|
|
201
|
-
*/
|
|
202
|
-
preparePluginUpload(params: PreparePluginUploadParams): Promise<string>
|
|
203
|
-
resolvePlugins(workspaceId: string, params: ResolvePluginsParams): Promise<ResolvedPlugins>;
|
|
204
|
-
installUserPlugins(params: InstallPluginsParams): Promise<boolean>;
|
|
205
|
-
uninstallUserPlugin(params: UninstallPluginParams): Promise<boolean>;
|
|
206
|
-
|
|
207
223
|
guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
|
|
208
224
|
|
|
209
225
|
/**
|
|
@@ -235,9 +251,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
235
251
|
|
|
236
252
|
tsGet(): Promise<TeamSubscription[]>;
|
|
237
253
|
tsGetSlots(): Promise<TeamSubscriptionSlotResolved[]>;
|
|
238
|
-
tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined
|
|
254
|
+
tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>;
|
|
239
255
|
tsAddSlots(teamSubscriptionId: string, quantity: number): Promise<void>;
|
|
240
|
-
tsAssignSlot(
|
|
256
|
+
tsAssignSlot(
|
|
257
|
+
teamSubscriptionId: string,
|
|
258
|
+
teamSubscriptionSlotId: string,
|
|
259
|
+
identityStr: string | undefined,
|
|
260
|
+
): Promise<void>;
|
|
241
261
|
tsReassignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, newIdentityStr: string): Promise<void>;
|
|
242
262
|
tsDeactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
|
|
243
263
|
tsReactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
|
|
@@ -250,6 +270,21 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
250
270
|
trackEvent(event: RemoteTrackMessage): Promise<void>;
|
|
251
271
|
trackLocation(event: RemotePageMessage): Promise<void>;
|
|
252
272
|
identifyUser(event: RemoteIdentifyMessage): Promise<void>;
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Gitpod Connections 🚀
|
|
276
|
+
*/
|
|
277
|
+
// getConnectionTypes(): Promise<ConnectionType>
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export interface RateLimiterError {
|
|
281
|
+
method?: string;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Retry after this many seconds, earliest.
|
|
285
|
+
* cmp.: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
|
|
286
|
+
*/
|
|
287
|
+
retryAfter: number;
|
|
253
288
|
}
|
|
254
289
|
|
|
255
290
|
export interface CreateProjectParams {
|
|
@@ -296,13 +331,17 @@ export interface ClientHeaderFields {
|
|
|
296
331
|
|
|
297
332
|
export const WorkspaceTimeoutValues = ["30m", "60m", "180m"] as const;
|
|
298
333
|
|
|
299
|
-
export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
334
|
+
export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
335
|
+
methods: Partial<JsonRpcProxy<S>>,
|
|
336
|
+
): GitpodServiceImpl<C, S> {
|
|
300
337
|
return new GitpodServiceImpl<C, S>(createServerMock(methods));
|
|
301
|
-
}
|
|
338
|
+
};
|
|
302
339
|
|
|
303
|
-
export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
304
|
-
methods
|
|
305
|
-
|
|
340
|
+
export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
341
|
+
methods: Partial<JsonRpcProxy<S>>,
|
|
342
|
+
): JsonRpcProxy<S> {
|
|
343
|
+
methods.setClient = methods.setClient || (() => {});
|
|
344
|
+
methods.dispose = methods.dispose || (() => {});
|
|
306
345
|
return new Proxy<JsonRpcProxy<S>>(methods as any as JsonRpcProxy<S>, {
|
|
307
346
|
// @ts-ignore
|
|
308
347
|
get: (target: S, property: keyof S) => {
|
|
@@ -311,25 +350,25 @@ export const createServerMock = function <C extends GitpodClient, S extends Gitp
|
|
|
311
350
|
throw new Error(`Method ${property} not implemented`);
|
|
312
351
|
}
|
|
313
352
|
return result;
|
|
314
|
-
}
|
|
353
|
+
},
|
|
315
354
|
});
|
|
316
|
-
}
|
|
355
|
+
};
|
|
317
356
|
|
|
318
357
|
type WorkspaceTimeoutDurationTuple = typeof WorkspaceTimeoutValues;
|
|
319
358
|
export type WorkspaceTimeoutDuration = WorkspaceTimeoutDurationTuple[number];
|
|
320
359
|
|
|
321
360
|
export interface SetWorkspaceTimeoutResult {
|
|
322
|
-
resetTimeoutOnWorkspaces: string[]
|
|
361
|
+
resetTimeoutOnWorkspaces: string[];
|
|
323
362
|
}
|
|
324
363
|
|
|
325
364
|
export interface GetWorkspaceTimeoutResult {
|
|
326
|
-
duration: WorkspaceTimeoutDuration
|
|
327
|
-
canChange: boolean
|
|
365
|
+
duration: WorkspaceTimeoutDuration;
|
|
366
|
+
canChange: boolean;
|
|
328
367
|
}
|
|
329
368
|
|
|
330
369
|
export interface StartWorkspaceResult {
|
|
331
|
-
instanceID: string
|
|
332
|
-
workspaceURL?: string
|
|
370
|
+
instanceID: string;
|
|
371
|
+
workspaceURL?: string;
|
|
333
372
|
}
|
|
334
373
|
|
|
335
374
|
export namespace GitpodServer {
|
|
@@ -373,23 +412,23 @@ export namespace GitpodServer {
|
|
|
373
412
|
readonly roundTripTime?: number;
|
|
374
413
|
}
|
|
375
414
|
export interface UpdateOwnAuthProviderParams {
|
|
376
|
-
readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry
|
|
415
|
+
readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry;
|
|
377
416
|
}
|
|
378
417
|
export interface DeleteOwnAuthProviderParams {
|
|
379
|
-
readonly id: string
|
|
418
|
+
readonly id: string;
|
|
380
419
|
}
|
|
381
420
|
export type AdmissionLevel = "owner" | "everyone";
|
|
382
421
|
export type PinAction = "pin" | "unpin" | "toggle";
|
|
383
422
|
export interface GenerateNewGitpodTokenOptions {
|
|
384
|
-
name?: string
|
|
385
|
-
type: GitpodTokenType
|
|
386
|
-
scopes?: string[]
|
|
423
|
+
name?: string;
|
|
424
|
+
type: GitpodTokenType;
|
|
425
|
+
scopes?: string[];
|
|
387
426
|
}
|
|
388
427
|
}
|
|
389
428
|
|
|
390
|
-
export const GitpodServerPath =
|
|
429
|
+
export const GitpodServerPath = "/gitpod";
|
|
391
430
|
|
|
392
|
-
export const GitpodServerProxy = Symbol(
|
|
431
|
+
export const GitpodServerProxy = Symbol("GitpodServerProxy");
|
|
393
432
|
export type GitpodServerProxy<S extends GitpodServer> = JsonRpcProxy<S>;
|
|
394
433
|
|
|
395
434
|
export class GitpodCompositeClient<Client extends GitpodClient> implements GitpodClient {
|
|
@@ -403,8 +442,8 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
403
442
|
if (index > -1) {
|
|
404
443
|
this.clients.splice(index, 1);
|
|
405
444
|
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
445
|
+
},
|
|
446
|
+
};
|
|
408
447
|
}
|
|
409
448
|
|
|
410
449
|
onInstanceUpdate(instance: WorkspaceInstance): void {
|
|
@@ -413,7 +452,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
413
452
|
try {
|
|
414
453
|
client.onInstanceUpdate(instance);
|
|
415
454
|
} catch (error) {
|
|
416
|
-
console.error(error)
|
|
455
|
+
console.error(error);
|
|
417
456
|
}
|
|
418
457
|
}
|
|
419
458
|
}
|
|
@@ -425,19 +464,22 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
425
464
|
try {
|
|
426
465
|
client.onPrebuildUpdate(update);
|
|
427
466
|
} catch (error) {
|
|
428
|
-
console.error(error)
|
|
467
|
+
console.error(error);
|
|
429
468
|
}
|
|
430
469
|
}
|
|
431
470
|
}
|
|
432
471
|
}
|
|
433
472
|
|
|
434
|
-
onWorkspaceImageBuildLogs(
|
|
473
|
+
onWorkspaceImageBuildLogs(
|
|
474
|
+
info: WorkspaceImageBuild.StateInfo,
|
|
475
|
+
content: WorkspaceImageBuild.LogContent | undefined,
|
|
476
|
+
): void {
|
|
435
477
|
for (const client of this.clients) {
|
|
436
478
|
if (client.onWorkspaceImageBuildLogs) {
|
|
437
479
|
try {
|
|
438
480
|
client.onWorkspaceImageBuildLogs(info, content);
|
|
439
481
|
} catch (error) {
|
|
440
|
-
console.error(error)
|
|
482
|
+
console.error(error);
|
|
441
483
|
}
|
|
442
484
|
}
|
|
443
485
|
}
|
|
@@ -449,7 +491,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
449
491
|
try {
|
|
450
492
|
client.notifyDidOpenConnection();
|
|
451
493
|
} catch (error) {
|
|
452
|
-
console.error(error)
|
|
494
|
+
console.error(error);
|
|
453
495
|
}
|
|
454
496
|
}
|
|
455
497
|
}
|
|
@@ -461,7 +503,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
461
503
|
try {
|
|
462
504
|
client.notifyDidCloseConnection();
|
|
463
505
|
} catch (error) {
|
|
464
|
-
console.error(error)
|
|
506
|
+
console.error(error);
|
|
465
507
|
}
|
|
466
508
|
}
|
|
467
509
|
}
|
|
@@ -473,17 +515,16 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
473
515
|
try {
|
|
474
516
|
client.onCreditAlert(creditAlert);
|
|
475
517
|
} catch (error) {
|
|
476
|
-
console.error(error)
|
|
518
|
+
console.error(error);
|
|
477
519
|
}
|
|
478
520
|
}
|
|
479
521
|
}
|
|
480
522
|
}
|
|
481
|
-
|
|
482
523
|
}
|
|
483
524
|
|
|
484
525
|
export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
|
|
485
526
|
|
|
486
|
-
const hasWindow =
|
|
527
|
+
const hasWindow = typeof window !== "undefined";
|
|
487
528
|
const phasesOrder: Record<WorkspaceInstancePhase, number> = {
|
|
488
529
|
unknown: 0,
|
|
489
530
|
preparing: 1,
|
|
@@ -493,44 +534,41 @@ const phasesOrder: Record<WorkspaceInstancePhase, number> = {
|
|
|
493
534
|
running: 5,
|
|
494
535
|
interrupted: 6,
|
|
495
536
|
stopping: 7,
|
|
496
|
-
stopped: 8
|
|
537
|
+
stopped: 8,
|
|
497
538
|
};
|
|
498
539
|
export class WorkspaceInstanceUpdateListener {
|
|
499
540
|
private readonly onDidChangeEmitter = new Emitter<void>();
|
|
500
541
|
readonly onDidChange = this.onDidChangeEmitter.event;
|
|
501
542
|
|
|
502
|
-
private source:
|
|
543
|
+
private source: "sync" | "update" = "sync";
|
|
503
544
|
|
|
504
545
|
get info(): WorkspaceInfo {
|
|
505
546
|
return this._info;
|
|
506
547
|
}
|
|
507
548
|
|
|
508
|
-
constructor(
|
|
509
|
-
private readonly service: GitpodService,
|
|
510
|
-
private _info: WorkspaceInfo
|
|
511
|
-
) {
|
|
549
|
+
constructor(private readonly service: GitpodService, private _info: WorkspaceInfo) {
|
|
512
550
|
service.registerClient({
|
|
513
|
-
onInstanceUpdate: instance => {
|
|
551
|
+
onInstanceUpdate: (instance) => {
|
|
514
552
|
if (this.isOutOfOrder(instance)) {
|
|
515
553
|
return;
|
|
516
554
|
}
|
|
517
555
|
this.cancelSync();
|
|
518
556
|
this._info.latestInstance = instance;
|
|
519
|
-
this.source =
|
|
557
|
+
this.source = "update";
|
|
520
558
|
this.onDidChangeEmitter.fire(undefined);
|
|
521
559
|
},
|
|
522
560
|
notifyDidOpenConnection: () => {
|
|
523
561
|
this.sync();
|
|
524
|
-
}
|
|
562
|
+
},
|
|
525
563
|
});
|
|
526
564
|
if (hasWindow) {
|
|
527
565
|
// learn about page lifecycle here: https://developers.google.com/web/updates/2018/07/page-lifecycle-api
|
|
528
|
-
window.document.addEventListener(
|
|
529
|
-
if (window.document.visibilityState ===
|
|
566
|
+
window.document.addEventListener("visibilitychange", async () => {
|
|
567
|
+
if (window.document.visibilityState === "visible") {
|
|
530
568
|
this.sync();
|
|
531
569
|
}
|
|
532
570
|
});
|
|
533
|
-
window.addEventListener(
|
|
571
|
+
window.addEventListener("pageshow", (e) => {
|
|
534
572
|
if (e.persisted) {
|
|
535
573
|
this.sync();
|
|
536
574
|
}
|
|
@@ -558,12 +596,12 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
558
596
|
return;
|
|
559
597
|
}
|
|
560
598
|
this._info = info;
|
|
561
|
-
this.source =
|
|
599
|
+
this.source = "sync";
|
|
562
600
|
this.onDidChangeEmitter.fire(undefined);
|
|
563
601
|
} catch (e) {
|
|
564
|
-
console.error(
|
|
602
|
+
console.error("failed to sync workspace instance:", e);
|
|
565
603
|
}
|
|
566
|
-
})
|
|
604
|
+
});
|
|
567
605
|
}
|
|
568
606
|
private cancelSync(): void {
|
|
569
607
|
if (this.syncTokenSource) {
|
|
@@ -580,7 +618,7 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
580
618
|
if (instance.workspaceId !== this._info.workspace.id) {
|
|
581
619
|
return true;
|
|
582
620
|
}
|
|
583
|
-
if (this.source ===
|
|
621
|
+
if (this.source === "update") {
|
|
584
622
|
return false;
|
|
585
623
|
}
|
|
586
624
|
if (instance.id !== this.info.latestInstance?.id) {
|
|
@@ -588,15 +626,13 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
588
626
|
}
|
|
589
627
|
return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
|
|
590
628
|
}
|
|
591
|
-
|
|
592
629
|
}
|
|
593
630
|
|
|
594
631
|
export interface GitpodServiceOptions {
|
|
595
|
-
onReconnect?: () =>
|
|
632
|
+
onReconnect?: () => void | Promise<void>;
|
|
596
633
|
}
|
|
597
634
|
|
|
598
635
|
export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
|
|
599
|
-
|
|
600
636
|
private readonly compositeClient = new GitpodCompositeClient<Client>();
|
|
601
637
|
|
|
602
638
|
constructor(public readonly server: JsonRpcProxy<Server>, private options?: GitpodServiceOptions) {
|
|
@@ -611,7 +647,8 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
|
|
|
611
647
|
|
|
612
648
|
private readonly instanceListeners = new Map<string, Promise<WorkspaceInstanceUpdateListener>>();
|
|
613
649
|
listenToInstance(workspaceId: string): Promise<WorkspaceInstanceUpdateListener> {
|
|
614
|
-
const listener =
|
|
650
|
+
const listener =
|
|
651
|
+
this.instanceListeners.get(workspaceId) ||
|
|
615
652
|
(async () => {
|
|
616
653
|
const info = await this.server.getWorkspace(workspaceId);
|
|
617
654
|
return new WorkspaceInstanceUpdateListener(this, info);
|
|
@@ -627,26 +664,25 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
|
|
|
627
664
|
}
|
|
628
665
|
}
|
|
629
666
|
|
|
630
|
-
export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
|
|
667
|
+
export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
|
|
668
|
+
serverUrl: string | Promise<string>,
|
|
669
|
+
) {
|
|
631
670
|
const toWsUrl = (serverUrl: string) => {
|
|
632
|
-
return new GitpodHostUrl(serverUrl)
|
|
633
|
-
.asWebsocket()
|
|
634
|
-
.withApi({ pathname: GitpodServerPath })
|
|
635
|
-
.toString();
|
|
671
|
+
return new GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: GitpodServerPath }).toString();
|
|
636
672
|
};
|
|
637
673
|
let url: string | Promise<string>;
|
|
638
674
|
if (typeof serverUrl === "string") {
|
|
639
675
|
url = toWsUrl(serverUrl);
|
|
640
676
|
} else {
|
|
641
|
-
url = serverUrl.then(url => toWsUrl(url));
|
|
677
|
+
url = serverUrl.then((url) => toWsUrl(url));
|
|
642
678
|
}
|
|
643
679
|
|
|
644
680
|
const connectionProvider = new WebSocketConnectionProvider();
|
|
645
|
-
let onReconnect = () => {
|
|
681
|
+
let onReconnect = () => {};
|
|
646
682
|
const gitpodServer = connectionProvider.createProxy<S>(url, undefined, {
|
|
647
|
-
onListening: socket => {
|
|
683
|
+
onListening: (socket) => {
|
|
648
684
|
onReconnect = () => socket.reconnect();
|
|
649
|
-
}
|
|
685
|
+
},
|
|
650
686
|
});
|
|
651
687
|
return new GitpodServiceImpl<C, S>(gitpodServer, { onReconnect });
|
|
652
|
-
}
|
|
688
|
+
}
|
|
@@ -4,21 +4,23 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
export enum HeadlessWorkspaceEventType {
|
|
9
8
|
LogOutput = "log-output",
|
|
10
9
|
FinishedSuccessfully = "finish-success",
|
|
11
10
|
FinishedButFailed = "finish-fail",
|
|
12
11
|
AbortedTimedOut = "aborted-timeout",
|
|
13
12
|
Aborted = "aborted",
|
|
14
|
-
|
|
13
|
+
Failed = "failed",
|
|
14
|
+
Started = "started",
|
|
15
15
|
}
|
|
16
16
|
export namespace HeadlessWorkspaceEventType {
|
|
17
17
|
export function isRunning(t: HeadlessWorkspaceEventType) {
|
|
18
18
|
return t === HeadlessWorkspaceEventType.LogOutput;
|
|
19
19
|
}
|
|
20
20
|
export function didFinish(t: HeadlessWorkspaceEventType) {
|
|
21
|
-
return
|
|
21
|
+
return (
|
|
22
|
+
t === HeadlessWorkspaceEventType.FinishedButFailed || t === HeadlessWorkspaceEventType.FinishedSuccessfully
|
|
23
|
+
);
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
|
|
@@ -35,4 +37,4 @@ export interface HeadlessLogUrls {
|
|
|
35
37
|
|
|
36
38
|
/** cmp. @const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX */
|
|
37
39
|
export const HEADLESS_LOG_STREAM_STATUS_CODE = "X-LogStream-StatusCode";
|
|
38
|
-
export const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX = /X-LogStream-StatusCode: ([0-9]{3})/;
|
|
40
|
+
export const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX = /X-LogStream-StatusCode: ([0-9]{3})/;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { Event } from "./util/event";
|
|
8
8
|
import { Disposable } from "./util/disposable";
|
|
9
9
|
|
|
10
|
-
export type IDEFrontendState =
|
|
10
|
+
export type IDEFrontendState = "init" | "ready" | "terminated";
|
|
11
11
|
|
|
12
12
|
export interface IDEFrontendService {
|
|
13
13
|
readonly state: IDEFrontendState;
|
|
@@ -25,4 +25,4 @@ export interface IDEFrontendService {
|
|
|
25
25
|
* confirmation dialogs for stopped workspaces.
|
|
26
26
|
*/
|
|
27
27
|
start(): Disposable;
|
|
28
|
-
}
|
|
28
|
+
}
|
package/src/ide-protocol.ts
CHANGED
|
@@ -45,12 +45,12 @@ export interface IDEClient {
|
|
|
45
45
|
/**
|
|
46
46
|
* Desktop IDEs supported by the client.
|
|
47
47
|
*/
|
|
48
|
-
desktopIDEs?: string[]
|
|
48
|
+
desktopIDEs?: string[];
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
51
|
* Steps to install the client on user machine.
|
|
52
52
|
*/
|
|
53
|
-
installationSteps?: string[]
|
|
53
|
+
installationSteps?: string[];
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export interface IDEOption {
|
|
@@ -67,12 +67,12 @@ export interface IDEOption {
|
|
|
67
67
|
/**
|
|
68
68
|
* The type of the IDE, currently 'browser' or 'desktop'.
|
|
69
69
|
*/
|
|
70
|
-
type:
|
|
70
|
+
type: "browser" | "desktop";
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
* The logo for the IDE. That could be a key in (see
|
|
74
|
+
* components/dashboard/src/images/ideLogos.ts) or a URL.
|
|
75
|
+
*/
|
|
76
76
|
logo: string;
|
|
77
77
|
|
|
78
78
|
/**
|
|
@@ -93,8 +93,8 @@ export interface IDEOption {
|
|
|
93
93
|
notes?: string[];
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
* If `true` this IDE option is not visible in the IDE preferences.
|
|
97
|
+
*/
|
|
98
98
|
hidden?: boolean;
|
|
99
99
|
|
|
100
100
|
/**
|
|
@@ -102,6 +102,11 @@ export interface IDEOption {
|
|
|
102
102
|
*/
|
|
103
103
|
image: string;
|
|
104
104
|
|
|
105
|
+
/**
|
|
106
|
+
* The latest image ref to the IDE image, this image ref always resolve to digest.
|
|
107
|
+
*/
|
|
108
|
+
latestImage?: string;
|
|
109
|
+
|
|
105
110
|
/**
|
|
106
111
|
* When this is `true`, the tag of this image is resolved to the latest
|
|
107
112
|
* image digest regularly.
|
package/src/index.ts
CHANGED
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
11
|
-
export * from
|
|
12
|
-
export * from
|
|
13
|
-
export * from
|
|
14
|
-
export * from
|
|
15
|
-
export * from
|
|
16
|
-
export * from
|
|
17
|
-
export * from
|
|
18
|
-
export * from
|
|
19
|
-
export * from
|
|
20
|
-
export * from
|
|
21
|
-
export * from
|
|
22
|
-
export * from
|
|
7
|
+
export * from "./protocol";
|
|
8
|
+
export * from "./gitpod-service";
|
|
9
|
+
export * from "./util/disposable";
|
|
10
|
+
export * from "./util/event";
|
|
11
|
+
export * from "./util/queue";
|
|
12
|
+
export * from "./license-protocol";
|
|
13
|
+
export * from "./workspace-instance";
|
|
14
|
+
export * from "./permission";
|
|
15
|
+
export * from "./admin-protocol";
|
|
16
|
+
export * from "./email-protocol";
|
|
17
|
+
export * from "./headless-workspace-log";
|
|
18
|
+
export * from "./context-url";
|
|
19
|
+
export * from "./teams-projects-protocol";
|
|
20
|
+
export * from "./snapshot-url";
|
|
21
|
+
export * from "./oss-allowlist";
|
|
22
|
+
export * from "./installation-admin-protocol";
|
|
23
|
+
export * from "./connections";
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { v4 as uuidv4 } from
|
|
7
|
+
import { v4 as uuidv4 } from "uuid";
|
|
8
8
|
|
|
9
9
|
const InstallationAdminSettingsPrototype = {
|
|
10
|
-
sendTelemetry: true
|
|
11
|
-
}
|
|
10
|
+
sendTelemetry: true,
|
|
11
|
+
};
|
|
12
12
|
|
|
13
13
|
export type InstallationAdminSettings = typeof InstallationAdminSettingsPrototype;
|
|
14
14
|
|
|
@@ -23,9 +23,11 @@ export interface InstallationAdmin {
|
|
|
23
23
|
settings: InstallationAdminSettings;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export interface
|
|
27
|
-
installationAdmin: InstallationAdmin
|
|
28
|
-
totalUsers: number
|
|
26
|
+
export interface TelemetryData {
|
|
27
|
+
installationAdmin: InstallationAdmin;
|
|
28
|
+
totalUsers: number;
|
|
29
|
+
totalWorkspaces: number;
|
|
30
|
+
totalInstances: number;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
export namespace InstallationAdmin {
|
|
@@ -34,7 +36,7 @@ export namespace InstallationAdmin {
|
|
|
34
36
|
id: uuidv4(),
|
|
35
37
|
settings: {
|
|
36
38
|
...InstallationAdminSettingsPrototype,
|
|
37
|
-
}
|
|
39
|
+
},
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
}
|