Skip to content

Commit e366e0d

Browse files
author
Simon Emms
committed
stuff
1 parent 5b5430b commit e366e0d

File tree

4 files changed

+62
-20
lines changed

4 files changed

+62
-20
lines changed
Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,38 @@
1-
import { useContext } from "react";
1+
import { AdminGetListResult, WorkspaceAndInstance } from "@gitpod/gitpod-protocol";
2+
import { useState } from "react";
23
import CheckBox from "../components/CheckBox";
34
import { PageWithSubMenu } from "../components/PageWithSubMenu";
4-
import { UserContext } from "../user-context";
5+
import { getGitpodService } from "../service/service";
6+
// import { UserContext } from "../user-context";
57
import { adminMenu } from "./admin-menu";
68

79
export default function Settings() {
8-
const { user } = useContext(UserContext);
10+
// const { user } = useContext(UserContext);
911

10-
console.log({ user })
12+
const [searchResult] = useState<AdminGetListResult<WorkspaceAndInstance>>({ rows: [], total: 0 });
13+
console.log(searchResult)
14+
15+
getGitpodService().server.adminSettingsGetTelemetry().then(() => {
16+
console.log('hello')
17+
}).catch((err) => {
18+
console.log(err)
19+
})
20+
21+
const actuallySetTelemetryPrefs = async (value: boolean) => {
22+
// console.log({ useState, UserContext })
23+
console.log({ value })
24+
console.log('hello world')
25+
}
1126

1227
return (
1328
<div>
1429
<PageWithSubMenu subMenu={adminMenu} title="Settings" subtitle="Configure settings for your Gitpod cluster.">
1530
<CheckBox
16-
title="Send anonymous telemetry to Gitpod"
17-
desc="This telemetry is used to provide insights on how you use your cluster so we can provide a better overall experience"
18-
checked={true} />
31+
title="Send anonymous service ping to Gitpod"
32+
desc="This is used to provide insights on how you use your cluster so we can provide a better overall experience."
33+
checked={false}
34+
onChange={(evt) => actuallySetTelemetryPrefs(evt.target.checked)} />
1935
</PageWithSubMenu>
20-
</div>
36+
</div >
2137
)
2238
}

components/gitpod-protocol/src/admin-protocol.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ export interface AdminServer {
2929
adminIsStudent(userId: string): Promise<boolean>;
3030
adminAddStudentEmailDomain(userId: string, domain: string): Promise<void>;
3131
adminGrantExtraHours(userId: string, extraHours: number): Promise<void>;
32+
33+
adminSettingsGetTelemetry(): Promise<boolean>
34+
adminSettingsSetTelemetry(send: boolean): Promise<void>
3235
}
3336

3437
export interface AdminGetListRequest<T> {
@@ -65,7 +68,7 @@ export interface AdminModifyPermanentWorkspaceFeatureFlagRequest {
6568
}[]
6669
}
6770

68-
export interface WorkspaceAndInstance extends Omit<Workspace, "id"|"creationTime">, Omit<WorkspaceInstance, "id"|"creationTime"> {
71+
export interface WorkspaceAndInstance extends Omit<Workspace, "id" | "creationTime">, Omit<WorkspaceInstance, "id" | "creationTime"> {
6972
workspaceId: string;
7073
workspaceCreationTime: string;
7174
instanceId: string;
@@ -78,7 +81,7 @@ export namespace WorkspaceAndInstance {
7881
return {
7982
id: wai.workspaceId,
8083
creationTime: wai.workspaceCreationTime,
81-
... wai
84+
...wai
8285
};
8386
}
8487

@@ -89,7 +92,7 @@ export namespace WorkspaceAndInstance {
8992
return {
9093
id: wai.instanceId,
9194
creationTime: wai.instanceCreationTime,
92-
... wai
95+
...wai
9396
};
9497
}
9598
}

components/server/ee/src/workspace/gitpod-server-impl.ts

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
318318
if (!instance) {
319319
throw new ResponseError(ErrorCodes.NOT_FOUND, `Workspace ${workspaceId} has no running instance`);
320320
}
321-
await this.guardAccess({ kind: "workspaceInstance", subject: instance, workspace}, "get");
321+
await this.guardAccess({ kind: "workspaceInstance", subject: instance, workspace }, "get");
322322

323323
const client = await this.workspaceManagerClientProvider.get(instance.region);
324324
const request = new TakeSnapshotRequest();
@@ -337,13 +337,13 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
337337
await this.internalDoWaitForWorkspace(waitOpts);
338338
} else {
339339
// start driving the snapshot immediately
340-
SafePromise.catchAndLog(this.internalDoWaitForWorkspace(waitOpts), { userId: user.id, workspaceId: workspaceId})
340+
SafePromise.catchAndLog(this.internalDoWaitForWorkspace(waitOpts), { userId: user.id, workspaceId: workspaceId })
341341
}
342342

343343
return snapshot.id;
344344
}
345345

346-
protected async guardSnaphotAccess(ctx: TraceContext, userId: string, workspaceId: string) : Promise<Workspace> {
346+
protected async guardSnaphotAccess(ctx: TraceContext, userId: string, workspaceId: string): Promise<Workspace> {
347347
traceAPIParams(ctx, { userId, workspaceId });
348348

349349
const workspace = await this.workspaceDb.trace(ctx).findById(workspaceId);
@@ -563,6 +563,20 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
563563
return result;
564564
}
565565

566+
async adminSettingsGetTelemetry(ctx: TraceContext): Promise<boolean> {
567+
// traceAPIParams(ctx, {});
568+
569+
// await this.guardAdminAccess("adminSettingsGetTelemetry", {}, Permission.ADMIN_API);
570+
571+
console.log(33333)
572+
573+
return false
574+
}
575+
576+
async adminSettingsSetTelemetry(ctx: TraceContext, send: boolean): Promise<void> {
577+
console.log('set')
578+
}
579+
566580
async adminForceStopWorkspace(ctx: TraceContext, workspaceId: string): Promise<void> {
567581
traceAPIParams(ctx, { workspaceId });
568582

@@ -715,7 +729,7 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
715729
}
716730

717731
async adminSetLicense(ctx: TraceContext, key: string): Promise<void> {
718-
traceAPIParams(ctx, { }); // don't trace the actual key
732+
traceAPIParams(ctx, {}); // don't trace the actual key
719733

720734
await this.guardAdminAccess("adminGetWorkspaces", { key }, Permission.ADMIN_API);
721735

@@ -1406,7 +1420,7 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
14061420

14071421
// various
14081422
async sendFeedback(ctx: TraceContext, feedback: string): Promise<string | undefined> {
1409-
traceAPIParams(ctx, { }); // feedback is not interesting here, any may contain names
1423+
traceAPIParams(ctx, {}); // feedback is not interesting here, any may contain names
14101424

14111425
const user = this.checkUser("sendFeedback");
14121426
const now = new Date().toISOString();

components/server/src/workspace/gitpod-server-impl.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
621621
includeHeadless: false,
622622
});
623623
await Promise.all(res.map(ws => this.guardAccess({ kind: "workspace", subject: ws.workspace }, "get")));
624-
await Promise.all(res.map(ws => this.guardAccess({ kind: "workspaceInstance", subject: ws.latestInstance, workspace: ws.workspace}, "get")));
624+
await Promise.all(res.map(ws => this.guardAccess({ kind: "workspaceInstance", subject: ws.latestInstance, workspace: ws.workspace }, "get")));
625625
return res;
626626
}
627627

@@ -1853,7 +1853,7 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
18531853
}
18541854

18551855
public async getGitpodTokenScopes(ctx: TraceContext, tokenHash: string): Promise<string[]> {
1856-
traceAPIParams(ctx, { }); // do not trace tokenHash
1856+
traceAPIParams(ctx, {}); // do not trace tokenHash
18571857

18581858
const user = this.checkAndBlockUser("getGitpodTokenScopes");
18591859
let token: GitpodToken | undefined;
@@ -1871,7 +1871,7 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
18711871
}
18721872

18731873
public async deleteGitpodToken(ctx: TraceContext, tokenHash: string): Promise<void> {
1874-
traceAPIParams(ctx, { }); // do not trace tokenHash
1874+
traceAPIParams(ctx, {}); // do not trace tokenHash
18751875

18761876
const user = this.checkAndBlockUser("deleteGitpodToken");
18771877
const existingTokens = await this.getGitpodTokens(ctx); // all tokens for logged in user
@@ -1984,6 +1984,15 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
19841984
throw new ResponseError(ErrorCodes.EE_FEATURE, `Admin support is implemented in Gitpod's Enterprise Edition`);
19851985
}
19861986

1987+
async adminSettingsGetTelemetry(ctx: TraceContext): Promise<boolean> {
1988+
console.log(2222)
1989+
return false;
1990+
}
1991+
1992+
async adminSettingsSetTelemetry(ctx: TraceContext, send: boolean): Promise<void> {
1993+
1994+
}
1995+
19871996
async getLicenseInfo(): Promise<GetLicenseInfoResult> {
19881997
throw new ResponseError(ErrorCodes.EE_FEATURE, `Licensing is implemented in Gitpod's Enterprise Edition`);
19891998
}
@@ -2040,7 +2049,7 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
20402049
protected validHostNameRegexp = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])(\/([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))?$/;
20412050

20422051
async updateOwnAuthProvider(ctx: TraceContext, { entry }: GitpodServer.UpdateOwnAuthProviderParams): Promise<AuthProviderEntry> {
2043-
traceAPIParams(ctx, { }); // entry contains PII
2052+
traceAPIParams(ctx, {}); // entry contains PII
20442053

20452054
let userId: string;
20462055
try {

0 commit comments

Comments
 (0)