@gen3/workspaces 0.12.74 → 0.12.76
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/TODO.md +31 -27
- package/dist/dts/server/workspaceAssetsHandler.d.ts.map +1 -1
- package/dist/dts/server/workspaceAssetsHandler.js +28 -12
- package/dist/dts/server/workspaceAssetsHandler.js.map +1 -1
- package/dist/server/cjs/server.js +21 -10
- package/dist/server/cjs/server.js.map +1 -1
- package/dist/server/esm/server.js +21 -10
- package/dist/server/esm/server.js.map +1 -1
- package/package.json +4 -4
package/TODO.md
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* ~~tooltips for each panel button~~
|
|
5
5
|
* ~~Full screen toggle~~
|
|
6
6
|
~~* Container Error Panel~~
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
~~* Match wireframe~~
|
|
8
|
+
~~* landing page~~
|
|
9
9
|
~~* Terminate Kernels~~
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
~~* Active Kernel? Note sure is this needed~~
|
|
11
|
+
~~* Correct Runtime~~
|
|
12
12
|
* Persistence of Active Kernels
|
|
13
13
|
* Billing Placeholder
|
|
14
14
|
* Gateway/Kernel Status
|
|
@@ -20,22 +20,22 @@
|
|
|
20
20
|
* ~~kernel runtime in minutes~~
|
|
21
21
|
* ~~Stop Container Button~~
|
|
22
22
|
* ~~hide when not running~~
|
|
23
|
-
|
|
23
|
+
~~* Select Kernel~~
|
|
24
24
|
* ~~Show upgrade panel in Free Tier~~
|
|
25
25
|
* ~~Hide kernel controls in Free Tier~~
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* Hatchery URL
|
|
35
|
-
* Jupyter lite source
|
|
36
|
-
* move to NPM
|
|
26
|
+
~~* Update Polling~~
|
|
27
|
+
~~* make polling configurable~~
|
|
28
|
+
~~* Workspace Status in Navigation~~
|
|
29
|
+
~~* Prevent Tier access when not logged in/authorized~~
|
|
30
|
+
~~* Test deployment~~
|
|
31
|
+
~~* Kernels~~
|
|
32
|
+
~~* Proxys~~
|
|
33
|
+
~~* Fix service config/definition~~
|
|
34
|
+
* ~~Hatchery URL~~
|
|
35
|
+
* ~~Jupyter lite source~~
|
|
36
|
+
* ~~move to NPM~~
|
|
37
37
|
* ~~create public stub for npm package~~
|
|
38
|
-
|
|
38
|
+
~~* Development Environment Support~~
|
|
39
39
|
|
|
40
40
|
# Backlog
|
|
41
41
|
|
|
@@ -44,38 +44,42 @@
|
|
|
44
44
|
|
|
45
45
|
## Load images
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
### pull images if needed
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
50
|
docker pull --platform linux/amd64 quay.io/cdis/gen3-vectis:qa-jegv2
|
|
51
|
-
docker pull --platform linux/amd64 quay.io/cdis/gen3-vectis:qa-goproxy
|
|
51
|
+
#docker pull --platform linux/amd64 quay.io/cdis/gen3-vectis:qa-goproxy
|
|
52
52
|
#docker pull --platform linux/amd64 quay.io/cdis/multihead-workspace-proxy:feat_init
|
|
53
53
|
#docker pull --platform linux/amd64 quay.io/cdis/gen3-vectis:gen3-vectisv6
|
|
54
54
|
```
|
|
55
|
-
kind load docker-image quay.io/cdis/gen3-vectis:qa-jegv2 --name kind-multi-node kind load docker-image
|
|
56
|
-
quay.io/cdis/gen3-vectis:qa-goproxy --name kind-multi-node #kind load docker-image
|
|
57
|
-
quay.io/cdis/multihead-workspace-proxy:feat_init --name kind-multi-node #kind load docker-image
|
|
58
|
-
quay.io/cdis/gen3-vectis:gen3-vectisv6 --name kind-multi-node
|
|
59
55
|
|
|
60
|
-
|
|
56
|
+
```bash
|
|
57
|
+
kind load docker-image quay.io/cdis/gen3-vectis:qa-jegv2 --name kind-multi-node
|
|
58
|
+
#quay.io/cdis/gen3-vectis:qa-goproxy --name kind-multi-node
|
|
59
|
+
#quay.io/cdis/multihead-workspace-proxy:feat_init --name kind-multi-node
|
|
60
|
+
#quay.io/cdis/gen3-vectis:gen3-vectisv6 --name kind-multi-node
|
|
61
|
+
````
|
|
62
|
+
|
|
63
|
+
### load local frontend image
|
|
61
64
|
|
|
62
65
|
```
|
|
63
66
|
kind load docker-image gen3:fef --name kind-multi-node
|
|
64
67
|
```
|
|
65
|
-
|
|
68
|
+
|
|
69
|
+
### Apply CA patch
|
|
66
70
|
|
|
67
71
|
```
|
|
68
72
|
./setup-kind-gen3.sh --patch-ca hatchery
|
|
69
73
|
./setup-kind-gen3.sh --patch-ca revproxy
|
|
70
74
|
```
|
|
71
75
|
|
|
72
|
-
|
|
76
|
+
### need to label kind with to enable the hatchery pods to start
|
|
73
77
|
|
|
74
78
|
```
|
|
75
79
|
kubectl label node kind-multi-node-control-plane role=jupyter
|
|
76
80
|
```
|
|
77
81
|
|
|
78
|
-
|
|
82
|
+
### set up fence with 'credentials' scope
|
|
79
83
|
|
|
80
84
|
```bash
|
|
81
85
|
fence-create client-create --client gen3dev2 --urls http://localhost:3000/api/auth/callback --username craigrbarnes@uchicago.edu --allowed-scopes openid user data credentials --grant-types authorization_code refresh_token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceAssetsHandler.d.ts","sourceRoot":"","sources":["../../../src/server/workspaceAssetsHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAY5D,MAAM,WAAW,6BAA6B;IAC5C,6HAA6H;IAC7H,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,6GAA6G;IAC7G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC;IAClD;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uHAAuH;IACvH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"workspaceAssetsHandler.d.ts","sourceRoot":"","sources":["../../../src/server/workspaceAssetsHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAY5D,MAAM,WAAW,6BAA6B;IAC5C,6HAA6H;IAC7H,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,6GAA6G;IAC7G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC;IAClD;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uHAAuH;IACvH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AA8bD,wBAAgB,4BAA4B,CAC1C,OAAO,CAAC,EAAE,6BAA6B,SA+DhC,cAAc,OACd,eAAe,KACnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAiKxB;AAYD,QAAA,MAAM,cAAc,QACb,cAAc,OACd,eAAe,KACnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAKlB,CAAC;eAEa,cAAc"}
|
|
@@ -258,14 +258,36 @@ async function proxyServerExtension(req, res, targetUrl, getToken) {
|
|
|
258
258
|
` cookieNames=[${cookieNames.join(',')}]`);
|
|
259
259
|
if (jwt) {
|
|
260
260
|
const claims = decodeJwtClaims(jwt);
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
// Gen3 nginx extracts the username from context.user.name (not sub, which is
|
|
262
|
+
// a numeric ID). Check context.user.name first so REMOTE_USER matches what
|
|
263
|
+
// workspace-proxy expects for per-user container routing.
|
|
264
|
+
const contextUserName = claims?.context?.user?.name;
|
|
265
|
+
// String username (what Ambassador stores in k8s service names via Hatchery).
|
|
266
|
+
const rawUsername = (typeof contextUserName === 'string' ? contextUserName : undefined) ??
|
|
267
|
+
claims?.preferred_username ??
|
|
268
|
+
claims?.username;
|
|
269
|
+
// Numeric sub — used as UID in workspace-proxy's uid:<UID>,<username> format.
|
|
270
|
+
const rawSub = claims?.sub;
|
|
271
|
+
const safeSub = typeof rawSub === 'string' ? rawSub.replace(/[\r\n]/g, '') : undefined;
|
|
272
|
+
// workspace-proxy identity.go parses the composite "uid:<UID>,<username>" format:
|
|
273
|
+
// normalizeUsername → extracts the username part (used for k8s service lookup)
|
|
274
|
+
// parseUID → extracts the UID part (used for UID-based fallback lookup)
|
|
275
|
+
// Ambassador normally injects this format; we must replicate it here since we
|
|
276
|
+
// bypass nginx when calling workspace-proxy server-side.
|
|
277
|
+
const safeUsername = typeof rawUsername === 'string'
|
|
278
|
+
? rawUsername.replace(/[\r\n]/g, '')
|
|
279
|
+
: safeSub;
|
|
280
|
+
if (safeUsername !== undefined) {
|
|
264
281
|
const safeJwt = jwt.replace(/[\r\n]/g, '');
|
|
282
|
+
const remoteUserValue = safeSub && safeUsername !== safeSub
|
|
283
|
+
? `uid:${safeSub},${safeUsername}`
|
|
284
|
+
: safeUsername;
|
|
265
285
|
forwardHeaders['Authorization'] = `Bearer ${safeJwt}`;
|
|
266
|
-
forwardHeaders['REMOTE_USER'] =
|
|
267
|
-
forwardHeaders['
|
|
268
|
-
|
|
286
|
+
forwardHeaders['REMOTE_USER'] = remoteUserValue;
|
|
287
|
+
forwardHeaders['remote_user'] = remoteUserValue;
|
|
288
|
+
forwardHeaders['X-Gen3-User-ID'] = remoteUserValue;
|
|
289
|
+
console.warn(`[workspace-assets] proxy auth-diag: injected REMOTE_USER="${remoteUserValue}"` +
|
|
290
|
+
` (contextUserName=${String(contextUserName)} sub=${String(rawSub)})` +
|
|
269
291
|
` claimsKeys=[${Object.keys(claims ?? {}).join(',')}]`);
|
|
270
292
|
}
|
|
271
293
|
else {
|
|
@@ -274,12 +296,6 @@ async function proxyServerExtension(req, res, targetUrl, getToken) {
|
|
|
274
296
|
` (REMOTE_USER NOT injected — workspace-proxy will likely reject)`);
|
|
275
297
|
}
|
|
276
298
|
}
|
|
277
|
-
else {
|
|
278
|
-
console.warn(`[workspace-assets] proxy auth-diag: no JWT found via ${tokenSource}` +
|
|
279
|
-
` — REMOTE_USER/X-Gen3-User-ID NOT injected — workspace-proxy will likely 502`);
|
|
280
|
-
}
|
|
281
|
-
// Log the set of header keys being forwarded (no values — headers can contain tokens).
|
|
282
|
-
console.warn(`[workspace-assets] proxy forwarding headers: [${Object.keys(forwardHeaders).join(',')}]`);
|
|
283
299
|
const method = (req.method || 'GET').toUpperCase();
|
|
284
300
|
let body;
|
|
285
301
|
if (!['GET', 'HEAD'].includes(method)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceAssetsHandler.js","sourceRoot":"","sources":["../../../src/server/workspaceAssetsHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaceAssetsHandler.js","sourceRoot":"","sources":["../../../src/server/workspaceAssetsHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -355,22 +355,33 @@ async function proxyServerExtension(req, res, targetUrl, getToken) {
|
|
|
355
355
|
console.warn(`[workspace-assets] proxy auth-diag: tokenSource=${tokenSource} jwtFound=${!!jwt}` + ` hasBearerHeader=${hasBearerHeader} hasAccessTokenCookie=${hasAccessTokenCookie}` + ` cookieNames=[${cookieNames.join(',')}]`);
|
|
356
356
|
if (jwt) {
|
|
357
357
|
const claims = decodeJwtClaims(jwt);
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
358
|
+
// Gen3 nginx extracts the username from context.user.name (not sub, which is
|
|
359
|
+
// a numeric ID). Check context.user.name first so REMOTE_USER matches what
|
|
360
|
+
// workspace-proxy expects for per-user container routing.
|
|
361
|
+
const contextUserName = claims?.context?.user?.name;
|
|
362
|
+
// String username (what Ambassador stores in k8s service names via Hatchery).
|
|
363
|
+
const rawUsername = (typeof contextUserName === 'string' ? contextUserName : undefined) ?? claims?.preferred_username ?? claims?.username;
|
|
364
|
+
// Numeric sub — used as UID in workspace-proxy's uid:<UID>,<username> format.
|
|
365
|
+
const rawSub = claims?.sub;
|
|
366
|
+
const safeSub = typeof rawSub === 'string' ? rawSub.replace(/[\r\n]/g, '') : undefined;
|
|
367
|
+
// workspace-proxy identity.go parses the composite "uid:<UID>,<username>" format:
|
|
368
|
+
// normalizeUsername → extracts the username part (used for k8s service lookup)
|
|
369
|
+
// parseUID → extracts the UID part (used for UID-based fallback lookup)
|
|
370
|
+
// Ambassador normally injects this format; we must replicate it here since we
|
|
371
|
+
// bypass nginx when calling workspace-proxy server-side.
|
|
372
|
+
const safeUsername = typeof rawUsername === 'string' ? rawUsername.replace(/[\r\n]/g, '') : safeSub;
|
|
373
|
+
if (safeUsername !== undefined) {
|
|
361
374
|
const safeJwt = jwt.replace(/[\r\n]/g, '');
|
|
375
|
+
const remoteUserValue = safeSub && safeUsername !== safeSub ? `uid:${safeSub},${safeUsername}` : safeUsername;
|
|
362
376
|
forwardHeaders['Authorization'] = `Bearer ${safeJwt}`;
|
|
363
|
-
forwardHeaders['REMOTE_USER'] =
|
|
364
|
-
forwardHeaders['
|
|
365
|
-
|
|
377
|
+
forwardHeaders['REMOTE_USER'] = remoteUserValue;
|
|
378
|
+
forwardHeaders['remote_user'] = remoteUserValue;
|
|
379
|
+
forwardHeaders['X-Gen3-User-ID'] = remoteUserValue;
|
|
380
|
+
console.warn(`[workspace-assets] proxy auth-diag: injected REMOTE_USER="${remoteUserValue}"` + ` (contextUserName=${String(contextUserName)} sub=${String(rawSub)})` + ` claimsKeys=[${Object.keys(claims ?? {}).join(',')}]`);
|
|
366
381
|
} else {
|
|
367
382
|
console.warn(`[workspace-assets] proxy auth-diag: JWT decoded but no sub/preferred_username/username claim found` + ` claimsKeys=[${Object.keys(claims ?? {}).join(',')}]` + ` (REMOTE_USER NOT injected — workspace-proxy will likely reject)`);
|
|
368
383
|
}
|
|
369
|
-
} else {
|
|
370
|
-
console.warn(`[workspace-assets] proxy auth-diag: no JWT found via ${tokenSource}` + ` — REMOTE_USER/X-Gen3-User-ID NOT injected — workspace-proxy will likely 502`);
|
|
371
384
|
}
|
|
372
|
-
// Log the set of header keys being forwarded (no values — headers can contain tokens).
|
|
373
|
-
console.warn(`[workspace-assets] proxy forwarding headers: [${Object.keys(forwardHeaders).join(',')}]`);
|
|
374
385
|
const method = (req.method || 'GET').toUpperCase();
|
|
375
386
|
let body;
|
|
376
387
|
if (![
|