@gitpod/gitpod-protocol 0.1.5-svenefftinge-patch-1.3 → 0.1.5-tar-telemetry-data-settings.0
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 +21 -2
- package/lib/accounting-protocol.d.ts +0 -1
- package/lib/accounting-protocol.d.ts.map +1 -1
- package/lib/accounting-protocol.js +10 -11
- package/lib/accounting-protocol.js.map +1 -1
- package/lib/admin-protocol.d.ts +18 -2
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js +2 -13
- package/lib/admin-protocol.js.map +1 -1
- package/lib/analytics.d.ts +13 -1
- package/lib/analytics.d.ts.map +1 -1
- package/lib/context-url.d.ts +1 -0
- package/lib/context-url.d.ts.map +1 -1
- package/lib/context-url.js +7 -5
- package/lib/context-url.js.map +1 -1
- package/lib/context-url.spec.js +45 -48
- package/lib/context-url.spec.js.map +1 -1
- package/lib/email-protocol.js +4 -4
- package/lib/email-protocol.js.map +1 -1
- package/lib/encryption/container-module.js +4 -4
- package/lib/encryption/container-module.js.map +1 -1
- package/lib/encryption/encryption-engine.js +19 -20
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +29 -36
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.js +29 -43
- package/lib/encryption/encryption-service.js.map +1 -1
- package/lib/encryption/key-provider.js +25 -30
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/env.d.ts +1 -2
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +20 -21
- package/lib/env.js.map +1 -1
- package/lib/gitpod-file-parser.js +25 -41
- package/lib/gitpod-file-parser.js.map +1 -1
- package/lib/gitpod-file-parser.spec.js +116 -116
- package/lib/gitpod-file-parser.spec.js.map +1 -1
- package/lib/gitpod-service.d.ts +69 -20
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +151 -295
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +1 -12
- package/lib/headless-workspace-log.d.ts.map +1 -1
- package/lib/headless-workspace-log.js +1 -7
- package/lib/headless-workspace-log.js.map +1 -1
- package/lib/ide-protocol.d.ts +101 -0
- package/lib/ide-protocol.d.ts.map +1 -0
- package/lib/ide-protocol.js +8 -0
- package/lib/ide-protocol.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/installation-admin-protocol.d.ts +27 -0
- package/lib/installation-admin-protocol.d.ts.map +1 -0
- package/lib/installation-admin-protocol.js +30 -0
- package/lib/installation-admin-protocol.js.map +1 -0
- package/lib/messaging/browser/connection.d.ts +3 -3
- package/lib/messaging/browser/connection.d.ts.map +1 -1
- package/lib/messaging/browser/connection.js +172 -35
- package/lib/messaging/browser/connection.js.map +1 -1
- package/lib/messaging/browser/window-connection.js +35 -55
- package/lib/messaging/browser/window-connection.js.map +1 -1
- package/lib/messaging/client-call-metrics.d.ts +35 -0
- package/lib/messaging/client-call-metrics.d.ts.map +1 -0
- package/lib/messaging/client-call-metrics.js +83 -0
- package/lib/messaging/client-call-metrics.js.map +1 -0
- package/lib/messaging/connection-error-handler.js +11 -23
- package/lib/messaging/connection-error-handler.js.map +1 -1
- package/lib/messaging/error.d.ts +2 -1
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +4 -2
- package/lib/messaging/error.js.map +1 -1
- package/lib/messaging/handler.d.ts +10 -0
- package/lib/messaging/handler.d.ts.map +1 -1
- package/lib/messaging/node/connection.d.ts +1 -17
- package/lib/messaging/node/connection.d.ts.map +1 -1
- package/lib/messaging/node/connection.js +23 -59
- package/lib/messaging/node/connection.js.map +1 -1
- package/lib/messaging/proxy-factory.d.ts +2 -0
- package/lib/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/messaging/proxy-factory.js +74 -159
- package/lib/messaging/proxy-factory.js.map +1 -1
- package/lib/oss-allowlist.d.ts +14 -0
- package/lib/oss-allowlist.d.ts.map +1 -0
- package/lib/oss-allowlist.js +8 -0
- package/lib/oss-allowlist.js.map +1 -0
- package/lib/permission.d.ts +4 -2
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +16 -13
- package/lib/permission.js.map +1 -1
- package/lib/plans.d.ts +1 -1
- package/lib/plans.d.ts.map +1 -1
- package/lib/plans.js +38 -57
- package/lib/plans.js.map +1 -1
- package/lib/protocol.d.ts +51 -49
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +57 -115
- package/lib/protocol.js.map +1 -1
- package/lib/snapshot-url.d.ts +14 -0
- package/lib/snapshot-url.d.ts.map +1 -0
- package/lib/snapshot-url.js +26 -0
- package/lib/snapshot-url.js.map +1 -0
- package/lib/snapshot-url.spec.d.ts +7 -0
- package/lib/snapshot-url.spec.d.ts.map +1 -0
- package/lib/snapshot-url.spec.js +41 -0
- package/lib/snapshot-url.spec.js.map +1 -0
- package/lib/team-subscription-protocol.js +13 -13
- package/lib/team-subscription-protocol.js.map +1 -1
- package/lib/teams-projects-protocol.d.ts +59 -6
- package/lib/teams-projects-protocol.d.ts.map +1 -1
- package/lib/teams-projects-protocol.js +18 -15
- package/lib/teams-projects-protocol.js.map +1 -1
- package/lib/util/analytics.d.ts.map +1 -1
- package/lib/util/analytics.js +35 -26
- package/lib/util/analytics.js.map +1 -1
- package/lib/util/async-iterator.js +55 -133
- package/lib/util/async-iterator.js.map +1 -1
- package/lib/util/cancelable.js +17 -59
- package/lib/util/cancelable.js.map +1 -1
- package/lib/util/date-time.js +8 -8
- package/lib/util/date-time.js.map +1 -1
- package/lib/util/deferred.js +10 -12
- package/lib/util/deferred.js.map +1 -1
- package/lib/util/disposable.js +26 -39
- package/lib/util/disposable.js.map +1 -1
- package/lib/util/event.js +58 -74
- package/lib/util/event.js.map +1 -1
- package/lib/util/garbage-collected-cache.d.ts +1 -0
- package/lib/util/garbage-collected-cache.d.ts.map +1 -1
- package/lib/util/garbage-collected-cache.js +26 -46
- package/lib/util/garbage-collected-cache.js.map +1 -1
- package/lib/util/generate-workspace-id.d.ts +1 -1
- package/lib/util/generate-workspace-id.d.ts.map +1 -1
- package/lib/util/generate-workspace-id.js +29 -68
- package/lib/util/generate-workspace-id.js.map +1 -1
- package/lib/util/generate-workspace-id.spec.js +57 -78
- package/lib/util/generate-workspace-id.spec.js.map +1 -1
- package/lib/util/gitpod-cookie.d.ts +20 -0
- package/lib/util/gitpod-cookie.d.ts.map +1 -0
- package/lib/util/gitpod-cookie.js +44 -0
- package/lib/util/gitpod-cookie.js.map +1 -0
- package/lib/util/gitpod-host-url.d.ts +1 -1
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +93 -103
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.js +87 -135
- package/lib/util/gitpod-host-url.spec.js.map +1 -1
- package/lib/util/grpc.d.ts +15 -0
- package/lib/util/grpc.d.ts.map +1 -0
- package/lib/util/grpc.js +18 -0
- package/lib/util/grpc.js.map +1 -0
- package/lib/util/jaeger-client-types.d.ts +68 -0
- package/lib/util/jaeger-client-types.d.ts.map +1 -0
- package/lib/util/jaeger-client-types.js +8 -0
- package/lib/util/jaeger-client-types.js.map +1 -0
- package/lib/util/logging.d.ts +49 -33
- package/lib/util/logging.d.ts.map +1 -1
- package/lib/util/logging.js +107 -110
- package/lib/util/logging.js.map +1 -1
- package/lib/util/make-link.js +2 -2
- package/lib/util/make-link.js.map +1 -1
- package/lib/util/parse-workspace-id.d.ts +10 -0
- package/lib/util/parse-workspace-id.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.js +31 -7
- package/lib/util/parse-workspace-id.js.map +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts +4 -0
- package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.spec.js +123 -84
- package/lib/util/parse-workspace-id.spec.js.map +1 -1
- package/lib/util/queue.js +16 -55
- package/lib/util/queue.js.map +1 -1
- package/lib/util/queue.spec.js +144 -288
- package/lib/util/queue.spec.js.map +1 -1
- package/lib/util/repeat.d.ts +15 -0
- package/lib/util/repeat.d.ts.map +1 -0
- package/lib/util/repeat.js +55 -0
- package/lib/util/repeat.js.map +1 -0
- package/lib/util/semaphore.js +15 -46
- package/lib/util/semaphore.js.map +1 -1
- package/lib/util/skip-if.js +6 -6
- package/lib/util/skip-if.js.map +1 -1
- package/lib/util/timeutil.js +16 -16
- package/lib/util/timeutil.js.map +1 -1
- package/lib/util/timeutil.spec.js +21 -24
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +51 -5
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +196 -62
- package/lib/util/tracing.js.map +1 -1
- package/lib/util/tracing.spec.d.ts +7 -0
- package/lib/util/tracing.spec.d.ts.map +1 -0
- package/lib/util/tracing.spec.js +121 -0
- package/lib/util/tracing.spec.js.map +1 -0
- package/lib/util/workspace-port-authentication.js +2 -2
- package/lib/util/workspace-port-authentication.js.map +1 -1
- package/lib/workspace-cluster.d.ts +8 -1
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js +3 -3
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/workspace-instance.d.ts +24 -2
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/wsready.js +1 -1
- package/package.json +24 -13
- package/pkg-yarn.lock +14 -7
- package/provenance-bundle.jsonl +2 -0
- package/src/accounting-protocol.ts +1 -3
- package/src/admin-protocol.ts +25 -6
- package/src/analytics.ts +16 -1
- package/src/context-url.ts +3 -1
- package/src/email-protocol.ts +1 -1
- package/src/env.ts +10 -10
- package/src/gitpod-service.ts +89 -33
- package/src/headless-workspace-log.ts +1 -14
- package/src/ide-frontend-service.ts +1 -1
- package/src/ide-protocol.ts +114 -0
- package/src/index.ts +3 -0
- package/src/installation-admin-protocol.ts +42 -0
- package/src/messaging/browser/connection.ts +176 -10
- package/src/messaging/client-call-metrics.ts +97 -0
- package/src/messaging/error.ts +5 -2
- package/src/messaging/handler.ts +12 -0
- package/src/messaging/node/connection.ts +21 -68
- package/src/messaging/proxy-factory.ts +13 -5
- package/src/oss-allowlist.ts +15 -0
- package/src/permission.ts +5 -1
- package/src/protocol.ts +70 -54
- package/src/snapshot-url.spec.ts +25 -0
- package/src/snapshot-url.ts +27 -0
- package/src/team-subscription-protocol.ts +1 -1
- package/src/teams-projects-protocol.ts +78 -7
- package/src/util/analytics.ts +17 -1
- package/src/util/garbage-collected-cache.ts +7 -1
- package/src/util/generate-workspace-id.spec.ts +17 -0
- package/src/util/generate-workspace-id.ts +20 -2
- package/src/util/gitpod-cookie.ts +39 -0
- package/src/util/gitpod-host-url.ts +11 -11
- package/src/util/grpc.ts +15 -0
- package/src/util/jaeger-client-types.ts +102 -0
- package/src/util/logging.ts +102 -38
- package/src/util/parse-workspace-id.spec.ts +21 -1
- package/src/util/parse-workspace-id.ts +32 -6
- package/src/util/repeat.ts +45 -0
- package/src/util/tracing.spec.ts +83 -0
- package/src/util/tracing.ts +183 -18
- package/src/workspace-cluster.ts +3 -1
- package/src/workspace-instance.ts +35 -6
- package/src/wsready.ts +1 -1
- package/lib/util/repeater.d.ts +0 -22
- package/lib/util/repeater.d.ts.map +0 -1
- package/lib/util/repeater.js +0 -118
- package/lib/util/repeater.js.map +0 -1
- package/lib/util/safe-promise.d.ts +0 -11
- package/lib/util/safe-promise.d.ts.map +0 -1
- package/lib/util/safe-promise.js +0 -34
- package/lib/util/safe-promise.js.map +0 -1
- package/src/util/jaeger-client.d.ts +0 -105
- package/src/util/repeater.ts +0 -49
- package/src/util/safe-promise.ts +0 -26
package/src/gitpod-service.ts
CHANGED
|
@@ -6,18 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
User, WorkspaceInfo, WorkspaceCreationResult, WorkspaceInstanceUser,
|
|
9
|
-
WhitelistedRepository, WorkspaceImageBuild, AuthProviderInfo,
|
|
9
|
+
WhitelistedRepository, WorkspaceImageBuild, AuthProviderInfo, CreateWorkspaceMode,
|
|
10
10
|
Token, UserEnvVarValue, ResolvePluginsParams, PreparePluginUploadParams, Terms,
|
|
11
11
|
ResolvedPlugins, Configuration, InstallPluginsParams, UninstallPluginParams, UserInfo, GitpodTokenType,
|
|
12
|
-
GitpodToken, AuthProviderEntry, GuessGitTokenScopesParams, GuessedGitTokenScopes
|
|
12
|
+
GitpodToken, AuthProviderEntry, GuessGitTokenScopesParams, GuessedGitTokenScopes, ProjectEnvVar
|
|
13
13
|
} from './protocol';
|
|
14
14
|
import {
|
|
15
15
|
Team, TeamMemberInfo,
|
|
16
|
-
TeamMembershipInvite, Project,
|
|
16
|
+
TeamMembershipInvite, Project, TeamMemberRole, PrebuildWithStatus, StartPrebuildResult, PartialProject
|
|
17
17
|
} from './teams-projects-protocol';
|
|
18
18
|
import { JsonRpcProxy, JsonRpcServer } from './messaging/proxy-factory';
|
|
19
19
|
import { Disposable, CancellationTokenSource } from 'vscode-jsonrpc';
|
|
20
|
-
import {
|
|
20
|
+
import { HeadlessLogUrls } from './headless-workspace-log';
|
|
21
21
|
import { WorkspaceInstance, WorkspaceInstancePort, WorkspaceInstancePhase } from './workspace-instance';
|
|
22
22
|
import { AdminServer } from './admin-protocol';
|
|
23
23
|
import { GitpodHostUrl } from './util/gitpod-host-url';
|
|
@@ -28,12 +28,15 @@ import { Emitter } from './util/event';
|
|
|
28
28
|
import { AccountStatement, CreditAlert } from './accounting-protocol';
|
|
29
29
|
import { GithubUpgradeURL, PlanCoupon } from './payment-protocol';
|
|
30
30
|
import { TeamSubscription, TeamSubscriptionSlot, TeamSubscriptionSlotResolved } from './team-subscription-protocol';
|
|
31
|
-
import { RemoteTrackMessage } from './analytics';
|
|
31
|
+
import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from './analytics';
|
|
32
|
+
import { IDEServer } from './ide-protocol';
|
|
33
|
+
import { InstallationAdminSettings, Data } from './installation-admin-protocol';
|
|
32
34
|
|
|
33
35
|
export interface GitpodClient {
|
|
34
36
|
onInstanceUpdate(instance: WorkspaceInstance): void;
|
|
35
37
|
onWorkspaceImageBuildLogs: WorkspaceImageBuild.LogCallback;
|
|
36
|
-
|
|
38
|
+
|
|
39
|
+
onPrebuildUpdate(update: PrebuildWithStatus): void;
|
|
37
40
|
|
|
38
41
|
onCreditAlert(creditAlert: CreditAlert): void;
|
|
39
42
|
|
|
@@ -44,7 +47,7 @@ export interface GitpodClient {
|
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
export const GitpodServer = Symbol('GitpodServer');
|
|
47
|
-
export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer, LicenseService {
|
|
50
|
+
export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer, LicenseService, IDEServer {
|
|
48
51
|
// User related API
|
|
49
52
|
getLoggedInUser(): Promise<User>;
|
|
50
53
|
getTerms(): Promise<Terms>;
|
|
@@ -53,9 +56,9 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
53
56
|
getOwnAuthProviders(): Promise<AuthProviderEntry[]>;
|
|
54
57
|
updateOwnAuthProvider(params: GitpodServer.UpdateOwnAuthProviderParams): Promise<AuthProviderEntry>;
|
|
55
58
|
deleteOwnAuthProvider(params: GitpodServer.DeleteOwnAuthProviderParams): Promise<void>;
|
|
56
|
-
getBranding(): Promise<Branding>;
|
|
57
59
|
getConfiguration(): Promise<Configuration>;
|
|
58
60
|
getToken(query: GitpodServer.GetTokenSearchOptions): Promise<Token | undefined>;
|
|
61
|
+
getGitpodTokenScopes(tokenHash: string): Promise<string[]>;
|
|
59
62
|
/**
|
|
60
63
|
* @deprecated
|
|
61
64
|
*/
|
|
@@ -69,8 +72,14 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
69
72
|
getWorkspaceOwner(workspaceId: string): Promise<UserInfo | undefined>;
|
|
70
73
|
getWorkspaceUsers(workspaceId: string): Promise<WorkspaceInstanceUser[]>;
|
|
71
74
|
getFeaturedRepositories(): Promise<WhitelistedRepository[]>;
|
|
75
|
+
/**
|
|
76
|
+
* **Security:**
|
|
77
|
+
* Sensitive information like an owner token is erased, since it allows access for all team members.
|
|
78
|
+
* If you need to access an owner token use `getOwnerToken` instead.
|
|
79
|
+
*/
|
|
72
80
|
getWorkspace(id: string): Promise<WorkspaceInfo>;
|
|
73
81
|
isWorkspaceOwner(workspaceId: string): Promise<boolean>;
|
|
82
|
+
getOwnerToken(workspaceId: string): Promise<string>;
|
|
74
83
|
|
|
75
84
|
/**
|
|
76
85
|
* Creates and starts a workspace for the given context URL.
|
|
@@ -87,7 +96,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
87
96
|
updateWorkspaceUserPin(id: string, action: GitpodServer.PinAction): Promise<void>;
|
|
88
97
|
sendHeartBeat(options: GitpodServer.SendHeartBeatOptions): Promise<void>;
|
|
89
98
|
watchWorkspaceImageBuildLogs(workspaceId: string): Promise<void>;
|
|
90
|
-
watchHeadlessWorkspaceLogs(workspaceId: string): Promise<void>;
|
|
91
99
|
isPrebuildDone(pwsid: string): Promise<boolean>;
|
|
92
100
|
getHeadlessLog(instanceId: string): Promise<HeadlessLogUrls>;
|
|
93
101
|
|
|
@@ -107,13 +115,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
107
115
|
getUserStorageResource(options: GitpodServer.GetUserStorageResourceOptions): Promise<string>;
|
|
108
116
|
updateUserStorageResource(options: GitpodServer.UpdateUserStorageResourceOptions): Promise<void>;
|
|
109
117
|
|
|
110
|
-
//
|
|
118
|
+
// User env vars
|
|
111
119
|
getEnvVars(): Promise<UserEnvVarValue[]>;
|
|
112
120
|
getAllEnvVars(): Promise<UserEnvVarValue[]>;
|
|
113
121
|
setEnvVar(variable: UserEnvVarValue): Promise<void>;
|
|
114
122
|
deleteEnvVar(variable: UserEnvVarValue): Promise<void>;
|
|
115
123
|
|
|
116
|
-
//
|
|
124
|
+
// Teams
|
|
117
125
|
getTeams(): Promise<Team[]>;
|
|
118
126
|
getTeamMembers(teamId: string): Promise<TeamMemberInfo[]>;
|
|
119
127
|
createTeam(name: string): Promise<Team>;
|
|
@@ -122,6 +130,32 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
122
130
|
removeTeamMember(teamId: string, userId: string): Promise<void>;
|
|
123
131
|
getGenericInvite(teamId: string): Promise<TeamMembershipInvite>;
|
|
124
132
|
resetGenericInvite(inviteId: string): Promise<TeamMembershipInvite>;
|
|
133
|
+
deleteTeam(teamId: string, userId: string): Promise<void>;
|
|
134
|
+
|
|
135
|
+
// Admin Settings
|
|
136
|
+
adminGetSettings(): Promise<InstallationAdminSettings>;
|
|
137
|
+
adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>;
|
|
138
|
+
adminGetTelemetryData(): Promise<Data>;
|
|
139
|
+
|
|
140
|
+
// Projects
|
|
141
|
+
getProviderRepositoriesForUser(params: GetProviderRepositoriesParams): Promise<ProviderRepository[]>;
|
|
142
|
+
createProject(params: CreateProjectParams): Promise<Project>;
|
|
143
|
+
deleteProject(projectId: string): Promise<void>;
|
|
144
|
+
getTeamProjects(teamId: string): Promise<Project[]>;
|
|
145
|
+
getUserProjects(): Promise<Project[]>;
|
|
146
|
+
getProjectOverview(projectId: string): Promise<Project.Overview | undefined>;
|
|
147
|
+
findPrebuilds(params: FindPrebuildsParams): Promise<PrebuildWithStatus[]>;
|
|
148
|
+
triggerPrebuild(projectId: string, branchName: string | null): Promise<StartPrebuildResult>;
|
|
149
|
+
cancelPrebuild(projectId: string, prebuildId: string): Promise<void>;
|
|
150
|
+
fetchProjectRepositoryConfiguration(projectId: string): Promise<string | undefined>;
|
|
151
|
+
guessProjectConfiguration(projectId: string): Promise<string | undefined>;
|
|
152
|
+
fetchRepositoryConfiguration(cloneUrl: string): Promise<string | undefined>;
|
|
153
|
+
guessRepositoryConfiguration(cloneUrl: string): Promise<string | undefined>;
|
|
154
|
+
setProjectConfiguration(projectId: string, configString: string): Promise<void>;
|
|
155
|
+
updateProjectPartial(partialProject: PartialProject): Promise<void>;
|
|
156
|
+
setProjectEnvironmentVariable(projectId: string, name: string, value: string, censored: boolean): Promise<void>;
|
|
157
|
+
getProjectEnvironmentVariables(projectId: string): Promise<ProjectEnvVar[]>;
|
|
158
|
+
deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
|
|
125
159
|
|
|
126
160
|
// content service
|
|
127
161
|
getContentBlobUploadUrl(name: string): Promise<string>
|
|
@@ -137,10 +171,15 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
137
171
|
registerGithubApp(installationId: string): Promise<void>;
|
|
138
172
|
|
|
139
173
|
/**
|
|
140
|
-
* Stores a new snapshot for the given workspace and bucketId
|
|
174
|
+
* Stores a new snapshot for the given workspace and bucketId. Returns _before_ the actual snapshot is done. To wait for that, use `waitForSnapshot`.
|
|
141
175
|
* @return the snapshot id
|
|
142
176
|
*/
|
|
143
177
|
takeSnapshot(options: GitpodServer.TakeSnapshotOptions): Promise<string>;
|
|
178
|
+
/**
|
|
179
|
+
*
|
|
180
|
+
* @param snapshotId
|
|
181
|
+
*/
|
|
182
|
+
waitForSnapshot(snapshotId: string): Promise<void>;
|
|
144
183
|
|
|
145
184
|
/**
|
|
146
185
|
* Returns the list of snapshots that exist for a workspace.
|
|
@@ -172,8 +211,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
172
211
|
* gitpod.io concerns
|
|
173
212
|
*/
|
|
174
213
|
isStudent(): Promise<boolean>;
|
|
175
|
-
getPrivateRepoTrialEndDate(): Promise<string | undefined>;
|
|
176
|
-
|
|
177
214
|
/**
|
|
178
215
|
*
|
|
179
216
|
*/
|
|
@@ -191,7 +228,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
191
228
|
|
|
192
229
|
getShowPaymentUI(): Promise<boolean>;
|
|
193
230
|
isChargebeeCustomer(): Promise<boolean>;
|
|
194
|
-
mayAccessPrivateRepo(): Promise<boolean>;
|
|
195
231
|
|
|
196
232
|
subscriptionUpgradeTo(subscriptionId: string, chargebeePlanId: string): Promise<void>;
|
|
197
233
|
subscriptionDowngradeTo(subscriptionId: string, chargebeePlanId: string): Promise<void>;
|
|
@@ -209,40 +245,54 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
209
245
|
|
|
210
246
|
getGithubUpgradeUrls(): Promise<GithubUpgradeURL[]>;
|
|
211
247
|
|
|
212
|
-
/**
|
|
213
|
-
* projects
|
|
214
|
-
*/
|
|
215
|
-
getProviderRepositoriesForUser(params: GetProviderRepositoriesParams): Promise<ProviderRepository[]>;
|
|
216
|
-
createProject(params: CreateProjectParams): Promise<Project>;
|
|
217
|
-
getProjects(teamId: string): Promise<ProjectInfo[]>;
|
|
218
|
-
getPrebuilds(teamId: string, project: string): Promise<PrebuildInfo[]>;
|
|
219
|
-
|
|
220
248
|
/**
|
|
221
249
|
* Analytics
|
|
222
250
|
*/
|
|
223
251
|
trackEvent(event: RemoteTrackMessage): Promise<void>;
|
|
252
|
+
trackLocation(event: RemotePageMessage): Promise<void>;
|
|
253
|
+
identifyUser(event: RemoteIdentifyMessage): Promise<void>;
|
|
224
254
|
}
|
|
225
255
|
|
|
226
256
|
export interface CreateProjectParams {
|
|
227
257
|
name: string;
|
|
258
|
+
slug?: string;
|
|
228
259
|
account: string;
|
|
229
260
|
provider: string;
|
|
230
261
|
cloneUrl: string;
|
|
231
|
-
teamId
|
|
262
|
+
teamId?: string;
|
|
263
|
+
userId?: string;
|
|
232
264
|
appInstallationId: string;
|
|
233
265
|
}
|
|
266
|
+
export interface FindPrebuildsParams {
|
|
267
|
+
projectId: string;
|
|
268
|
+
branch?: string;
|
|
269
|
+
latest?: boolean;
|
|
270
|
+
prebuildId?: string;
|
|
271
|
+
// default: 30
|
|
272
|
+
limit?: number;
|
|
273
|
+
}
|
|
234
274
|
export interface GetProviderRepositoriesParams {
|
|
235
275
|
provider: string;
|
|
236
276
|
hints?: { installationId: string } | object;
|
|
237
277
|
}
|
|
238
278
|
export interface ProviderRepository {
|
|
239
279
|
name: string;
|
|
280
|
+
path?: string;
|
|
240
281
|
account: string;
|
|
241
282
|
accountAvatarUrl: string;
|
|
242
283
|
cloneUrl: string;
|
|
243
284
|
updatedAt: string;
|
|
244
285
|
installationId?: number;
|
|
245
286
|
installationUpdatedAt?: string;
|
|
287
|
+
|
|
288
|
+
inUse?: { userName: string };
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export interface ClientHeaderFields {
|
|
292
|
+
ip?: string;
|
|
293
|
+
userAgent?: string;
|
|
294
|
+
dnt?: string;
|
|
295
|
+
clientRegion?: string;
|
|
246
296
|
}
|
|
247
297
|
|
|
248
298
|
export const WorkspaceTimeoutValues = ["30m", "60m", "180m"] as const;
|
|
@@ -288,6 +338,8 @@ export namespace GitpodServer {
|
|
|
288
338
|
limit?: number;
|
|
289
339
|
searchString?: string;
|
|
290
340
|
pinnedOnly?: boolean;
|
|
341
|
+
projectId?: string | string[];
|
|
342
|
+
includeWithoutProject?: boolean;
|
|
291
343
|
}
|
|
292
344
|
export interface GetAccountStatementOptions {
|
|
293
345
|
date?: string;
|
|
@@ -303,6 +355,8 @@ export namespace GitpodServer {
|
|
|
303
355
|
export interface TakeSnapshotOptions {
|
|
304
356
|
workspaceId: string;
|
|
305
357
|
layoutData?: string;
|
|
358
|
+
/* this is here to enable backwards-compatibility and untangling rollout between workspace, IDE and meta */
|
|
359
|
+
dontWait?: boolean;
|
|
306
360
|
}
|
|
307
361
|
export interface GetUserStorageResourceOptions {
|
|
308
362
|
readonly uri: string;
|
|
@@ -344,10 +398,12 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
344
398
|
|
|
345
399
|
public registerClient(client: Partial<Client>): Disposable {
|
|
346
400
|
this.clients.push(client);
|
|
347
|
-
const index = this.clients.length;
|
|
348
401
|
return {
|
|
349
402
|
dispose: () => {
|
|
350
|
-
this.clients.
|
|
403
|
+
const index = this.clients.indexOf(client);
|
|
404
|
+
if (index > -1) {
|
|
405
|
+
this.clients.splice(index, 1);
|
|
406
|
+
}
|
|
351
407
|
}
|
|
352
408
|
}
|
|
353
409
|
}
|
|
@@ -364,11 +420,11 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
364
420
|
}
|
|
365
421
|
}
|
|
366
422
|
|
|
367
|
-
|
|
423
|
+
onPrebuildUpdate(update: PrebuildWithStatus): void {
|
|
368
424
|
for (const client of this.clients) {
|
|
369
|
-
if (client.
|
|
425
|
+
if (client.onPrebuildUpdate) {
|
|
370
426
|
try {
|
|
371
|
-
client.
|
|
427
|
+
client.onPrebuildUpdate(update);
|
|
372
428
|
} catch (error) {
|
|
373
429
|
console.error(error)
|
|
374
430
|
}
|
|
@@ -376,11 +432,11 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
376
432
|
}
|
|
377
433
|
}
|
|
378
434
|
|
|
379
|
-
|
|
435
|
+
onWorkspaceImageBuildLogs(info: WorkspaceImageBuild.StateInfo, content: WorkspaceImageBuild.LogContent | undefined): void {
|
|
380
436
|
for (const client of this.clients) {
|
|
381
|
-
if (client.
|
|
437
|
+
if (client.onWorkspaceImageBuildLogs) {
|
|
382
438
|
try {
|
|
383
|
-
client.
|
|
439
|
+
client.onWorkspaceImageBuildLogs(info, content);
|
|
384
440
|
} catch (error) {
|
|
385
441
|
console.error(error)
|
|
386
442
|
}
|
|
@@ -537,7 +593,7 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
537
593
|
}
|
|
538
594
|
|
|
539
595
|
export interface GitpodServiceOptions {
|
|
540
|
-
onReconnect?: () => (void |
|
|
596
|
+
onReconnect?: () => (void | Promise<void>)
|
|
541
597
|
}
|
|
542
598
|
|
|
543
599
|
export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
|
|
@@ -22,25 +22,12 @@ export namespace HeadlessWorkspaceEventType {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
export interface
|
|
25
|
+
export interface HeadlessWorkspaceEvent {
|
|
26
26
|
workspaceID: string;
|
|
27
27
|
text: string;
|
|
28
28
|
type: HeadlessWorkspaceEventType;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
export enum TheiaHeadlessLogType {
|
|
32
|
-
TaskLogLabel = "workspaceTaskOutput",
|
|
33
|
-
TaskFailedLabel = "workspaceTaskFailed",
|
|
34
|
-
TaskSuccessfulLabel = "workspaceTaskDone"
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface TheiaHeadlessLogMessage {
|
|
38
|
-
type: TheiaHeadlessLogType;
|
|
39
|
-
data?: string;
|
|
40
|
-
error?: string;
|
|
41
|
-
snapshotURL?: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
31
|
export interface HeadlessLogUrls {
|
|
45
32
|
// A map of id to URL
|
|
46
33
|
streams: { [streamID: string]: string };
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { Event } from "./util/event";
|
|
8
8
|
import { Disposable } from "./util/disposable";
|
|
9
9
|
|
|
10
|
-
export type IDEFrontendState = 'init' | 'ready' |
|
|
10
|
+
export type IDEFrontendState = 'init' | 'ready' | 'terminated';
|
|
11
11
|
|
|
12
12
|
export interface IDEFrontendService {
|
|
13
13
|
readonly state: IDEFrontendState;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 Gitpod GmbH. All rights reserved.
|
|
3
|
+
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
+
* See License-AGPL.txt in the project root for license information.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* `IDEServer` provides a list of available IDEs.
|
|
9
|
+
*/
|
|
10
|
+
export interface IDEServer {
|
|
11
|
+
/**
|
|
12
|
+
* Returns the IDE preferences.
|
|
13
|
+
*/
|
|
14
|
+
getIDEOptions(): Promise<IDEOptions>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface IDEOptions {
|
|
18
|
+
/**
|
|
19
|
+
* A list of available IDEs.
|
|
20
|
+
*/
|
|
21
|
+
options: { [key: string]: IDEOption };
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The default (browser) IDE when the user has not specified one.
|
|
25
|
+
*/
|
|
26
|
+
defaultIde: string;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The default desktop IDE when the user has not specified one.
|
|
30
|
+
*/
|
|
31
|
+
defaultDesktopIde: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Client specific IDE options.
|
|
35
|
+
*/
|
|
36
|
+
clients?: { [id: string]: IDEClient };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface IDEClient {
|
|
40
|
+
/**
|
|
41
|
+
* The default desktop IDE when the user has not specified one.
|
|
42
|
+
*/
|
|
43
|
+
defaultDesktopIDE?: string;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Desktop IDEs supported by the client.
|
|
47
|
+
*/
|
|
48
|
+
desktopIDEs?: string[]
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Steps to install the client on user machine.
|
|
52
|
+
*/
|
|
53
|
+
installationSteps?: string[]
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface IDEOption {
|
|
57
|
+
/**
|
|
58
|
+
* To ensure a stable order one can set an `orderKey`.
|
|
59
|
+
*/
|
|
60
|
+
orderKey?: string;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Human readable title text of the IDE (plain text only).
|
|
64
|
+
*/
|
|
65
|
+
title: string;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The type of the IDE, currently 'browser' or 'desktop'.
|
|
69
|
+
*/
|
|
70
|
+
type: 'browser' | 'desktop';
|
|
71
|
+
|
|
72
|
+
/**
|
|
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
|
+
logo: string;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Text of an optional tooltip (plain text only).
|
|
80
|
+
*/
|
|
81
|
+
tooltip?: string;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Text of an optional label next to the IDE option like “Insiders” (plain
|
|
85
|
+
* text only).
|
|
86
|
+
*/
|
|
87
|
+
label?: string;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Notes to the IDE option that are renderd in the preferences when a user
|
|
91
|
+
* chooses this IDE.
|
|
92
|
+
*/
|
|
93
|
+
notes?: string[];
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* If `true` this IDE option is not visible in the IDE preferences.
|
|
97
|
+
*/
|
|
98
|
+
hidden?: boolean;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The image ref to the IDE image.
|
|
102
|
+
*/
|
|
103
|
+
image: string;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* When this is `true`, the tag of this image is resolved to the latest
|
|
107
|
+
* image digest regularly.
|
|
108
|
+
*
|
|
109
|
+
* This is useful if this image points to a tag like `nightly` that will be
|
|
110
|
+
* updated regularly. When `resolveImageDigest` is `true`, we make sure that
|
|
111
|
+
* we resolve the tag regularly to the most recent image version.
|
|
112
|
+
*/
|
|
113
|
+
resolveImageDigest?: boolean;
|
|
114
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -17,3 +17,6 @@ export * from './email-protocol';
|
|
|
17
17
|
export * from './headless-workspace-log';
|
|
18
18
|
export * from './context-url';
|
|
19
19
|
export * from './teams-projects-protocol';
|
|
20
|
+
export * from './snapshot-url';
|
|
21
|
+
export * from './oss-allowlist';
|
|
22
|
+
export * from './installation-admin-protocol';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
|
+
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
+
* See License-AGPL.txt in the project root for license information.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
8
|
+
|
|
9
|
+
const InstallationAdminSettingsPrototype = {
|
|
10
|
+
sendTelemetry: true
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type InstallationAdminSettings = typeof InstallationAdminSettingsPrototype;
|
|
14
|
+
|
|
15
|
+
export namespace InstallationAdminSettings {
|
|
16
|
+
export function fields(): (keyof InstallationAdminSettings)[] {
|
|
17
|
+
return Object.keys(InstallationAdminSettingsPrototype) as (keyof InstallationAdminSettings)[];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface InstallationAdmin {
|
|
22
|
+
id: string;
|
|
23
|
+
settings: InstallationAdminSettings;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface Data {
|
|
27
|
+
installationAdmin: InstallationAdmin
|
|
28
|
+
totalUsers: number
|
|
29
|
+
totalWorkspaces: number
|
|
30
|
+
totalInstances: number
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export namespace InstallationAdmin {
|
|
34
|
+
export function createDefault(): InstallationAdmin {
|
|
35
|
+
return {
|
|
36
|
+
id: uuidv4(),
|
|
37
|
+
settings: {
|
|
38
|
+
...InstallationAdminSettingsPrototype,
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|