snyk-broker 5.22.1 → 5.22.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.
@@ -39,31 +39,12 @@ const getConfigForConnectionsFromConfig = (config) => {
39
39
  };
40
40
  exports.getConfigForConnectionsFromConfig = getConfigForConnectionsFromConfig;
41
41
  const getConfigForConnection = (key, config) => {
42
- const connectionConfig = {
43
- ...(0, exports.getConfigForType)(config.connections[key].type),
44
- ...config.connections[key],
45
- ...(0, exports.getValidationConfigForType)((0, filterSelection_1.determineFilterType)(config.connections[key].type, config)),
42
+ const connection = config.connections[key];
43
+ return {
44
+ ...(0, exports.getConfigForType)(connection.type),
45
+ ...connection,
46
+ ...(0, exports.getValidationConfigForType)((0, filterSelection_1.determineFilterType)(connection.type, connection)),
46
47
  };
47
- // If it's a Bitbucket Server connection and a PAT is provided,
48
- // override the validation auth to use Bearer token.
49
- // This ensures system checks use the PAT instead of defaulting to basic auth.
50
- if (connectionConfig.type === 'bitbucket-server' &&
51
- connectionConfig.BITBUCKET_PAT &&
52
- connectionConfig.validations &&
53
- Array.isArray(connectionConfig.validations)) {
54
- logger_1.log.debug({ connectionName: key }, 'Bitbucket Server connection with PAT found. Modifying validation auth to use Bearer token.');
55
- connectionConfig.validations = connectionConfig.validations.map((validation) => {
56
- // Preserve other validation properties, override auth
57
- return {
58
- ...validation,
59
- auth: {
60
- type: 'header',
61
- value: `Bearer ${connectionConfig.BITBUCKET_PAT}`,
62
- },
63
- };
64
- });
65
- }
66
- return connectionConfig;
67
48
  };
68
49
  exports.getConfigForConnection = getConfigForConnection;
69
50
  const getValidationConfigForType = (type) => {
@@ -1 +1 @@
1
- {"version":3,"file":"universal.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/common/config/universal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universal.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/common/config/universal.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BrokerAuthError = exports.validateBrokerClientCredentials = void 0;
3
+ exports.BrokerAuthError = exports.validateBrokerClientCredentials = exports.getHandshakeIdentityFromHeaders = void 0;
4
4
  const config_1 = require("../../common/config/config");
5
5
  const token_1 = require("../../common/utils/token");
6
6
  const logger_1 = require("../../../logs/logger");
@@ -41,12 +41,24 @@ function getHeaderOptions(authHeader) {
41
41
  }
42
42
  return requestHeaders;
43
43
  }
44
+ /**
45
+ * Reads the handshake identity from the websocket upgrade headers. This is the
46
+ * only identity available before the client sends `identify`, so it is also the
47
+ * only way to correlate a socket back to the pool entry the authorize hook
48
+ * registered for it.
49
+ */
50
+ const getHandshakeIdentityFromHeaders = (headers) => ({
51
+ brokerClientId: getHeader(headers, BROKER_CLIENT_ID_HEADER),
52
+ role: getHeader(headers, BROKER_CLIENT_ROLE_HEADER) ?? '',
53
+ handshakeId: getHeader(headers, SNYK_REQUEST_ID_HEADER),
54
+ });
55
+ exports.getHandshakeIdentityFromHeaders = getHandshakeIdentityFromHeaders;
44
56
  const validateBrokerClientCredentials = async (headers, brokerConnectionIdentifier, isInternalJWT = false, brokerClientId) => {
45
57
  const authHeader = getHeader(headers, AUTHORIZATION_HEADER);
46
- brokerClientId =
47
- brokerClientId ?? getHeader(headers, BROKER_CLIENT_ID_HEADER);
48
- const role = getHeader(headers, BROKER_CLIENT_ROLE_HEADER) ?? '';
49
- const requestId = getHeader(headers, SNYK_REQUEST_ID_HEADER) ?? '';
58
+ const identity = (0, exports.getHandshakeIdentityFromHeaders)(headers);
59
+ brokerClientId = brokerClientId ?? identity.brokerClientId;
60
+ const role = identity.role;
61
+ const requestId = identity.handshakeId ?? '';
50
62
  const maskedToken = (0, token_1.maskToken)(brokerConnectionIdentifier);
51
63
  logger_1.log.debug({ maskedToken, brokerClientId, requestId }, `Validating auth for connection ${brokerConnectionIdentifier} client Id ${brokerClientId}, role ${role}.`);
52
64
  if (!authHeader ||
@@ -1 +1 @@
1
- {"version":3,"file":"authHelpers.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/auth/authHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authHelpers.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/auth/authHelpers.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ const authRefreshHandler = async (req, res) => {
17
17
  const brokerClientId = body.data.attributes.broker_client_id;
18
18
  const connection = (0, socket_1.getSocketConnectionByIdentifier)(identifier);
19
19
  currentClient = connection
20
- ? connection.find((x) => x.metadata.clientId === brokerClientId && x.role === role)
20
+ ? (0, socket_1.findClientToRefreshCreds)(connection, brokerClientId, role)
21
21
  : null;
22
22
  if (brokerAppClientId === undefined || !connection || !currentClient) {
23
23
  logger_1.log.debug({ identifier, brokerClientId, role }, 'Missing required authorization header.');
@@ -25,14 +25,8 @@ const authRefreshHandler = async (req, res) => {
25
25
  }
26
26
  // deepcode ignore Ssrf: request URL comes from the filter response, with the origin url being injected by the filtered version
27
27
  await (0, authHelpers_1.validateBrokerClientCredentials)(req.headers, identifier, true, brokerClientId);
28
- // Refresh client validation time
29
- const nowDate = new Date().toISOString();
30
- currentClient.credsValidationTime = nowDate;
31
- const currentClientIndex = connection.findIndex((x) => x.brokerClientId === brokerClientId && x.role === role);
32
- if (currentClientIndex === -1) {
33
- throw new Error('Unable to find client connection.');
34
- }
35
- connection[currentClientIndex] = currentClient;
28
+ // Update the live pool entry directly so a pending reconnect is not replaced.
29
+ currentClient.credsValidationTime = new Date().toISOString();
36
30
  return res.status(201).send('OK');
37
31
  }
38
32
  catch (err) {
@@ -40,10 +34,8 @@ const authRefreshHandler = async (req, res) => {
40
34
  if (err instanceof authHelpers_1.BrokerAuthError) {
41
35
  return res.status(401).type('txt').send(err.message);
42
36
  }
43
- return res
44
- .status(500)
45
- .type('txt')
46
- .send(`Unable to complete auth refresh: ${err}.`);
37
+ logger_1.log.error({ err }, 'Unable to complete auth refresh.');
38
+ return res.status(500).type('txt').send('Unable to complete auth refresh.');
47
39
  }
48
40
  };
49
41
  exports.authRefreshHandler = authRefreshHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"authHandlers.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/routesHandlers/authHandlers.ts"],"names":[],"mappings":";;;AACA,qDAG6B;AAC7B,iDAAqD;AACrD,sCAA+E;AAC/E,oDAAqD;AAY9C,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACtE,IAAI,aAA8C,CAAC;IACnD,IAAI;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,iBAAiB,GACrB,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC;YACjE,eAAe,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,YAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,IAAA,iBAAS,EAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAC/D,cAAc,CACf,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAgC,CAAC;QAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAE7D,MAAM,UAAU,GAAG,IAAA,wCAA+B,EAAC,UAAU,CAAC,CAAC;QAC/D,aAAa,GAAG,UAAU;YACxB,CAAC,CAAC,UAAU,CAAC,IAAI,CACb,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACjE;YACH,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,iBAAiB,KAAK,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE;YACpE,YAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,EACpC,wCAAwC,CACzC,CAAC;YACF,MAAM,IAAI,6BAAe,CAAC,wCAAwC,CAAC,CAAC;SACrE;QAED,+HAA+H;QAC/H,MAAM,IAAA,6CAA+B,EACnC,GAAG,CAAC,OAAO,EACX,UAAU,EACV,IAAI,EACJ,cAAc,CACf,CAAC;QACF,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC;QAC5C,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAC9D,CAAC;QACF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,UAAU,CAAC,kBAAkB,CAAC,GAAG,aAAa,CAAC;QAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC7B,IAAI,GAAG,YAAY,6BAAe,EAAE;YAClC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtD;QACD,OAAO,GAAG;aACP,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC;KACrD;AACH,CAAC,CAAC;AA3DW,QAAA,kBAAkB,sBA2D7B"}
1
+ {"version":3,"file":"authHandlers.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/routesHandlers/authHandlers.ts"],"names":[],"mappings":";;;AACA,qDAG6B;AAC7B,iDAAqD;AACrD,sCAImB;AACnB,oDAAqD;AAY9C,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACtE,IAAI,aAA8C,CAAC;IACnD,IAAI;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,iBAAiB,GACrB,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC;YACjE,eAAe,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,YAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,IAAA,iBAAS,EAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAC/D,cAAc,CACf,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAgC,CAAC;QAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAE7D,MAAM,UAAU,GAAG,IAAA,wCAA+B,EAAC,UAAU,CAAC,CAAC;QAC/D,aAAa,GAAG,UAAU;YACxB,CAAC,CAAC,IAAA,iCAAwB,EAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,iBAAiB,KAAK,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE;YACpE,YAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,EACpC,wCAAwC,CACzC,CAAC;YACF,MAAM,IAAI,6BAAe,CAAC,wCAAwC,CAAC,CAAC;SACrE;QAED,+HAA+H;QAC/H,MAAM,IAAA,6CAA+B,EACnC,GAAG,CAAC,OAAO,EACX,UAAU,EACV,IAAI,EACJ,cAAc,CACf,CAAC;QACF,8EAA8E;QAC9E,aAAa,CAAC,mBAAmB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAAC,OAAO,GAAG,EAAE;QACZ,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC7B,IAAI,GAAG,YAAY,6BAAe,EAAE;YAClC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtD;QACD,YAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AA/CW,QAAA,kBAAkB,sBA+C7B"}
@@ -10,6 +10,49 @@ const node_url_1 = require("node:url");
10
10
  const request_1 = require("../../http/request");
11
11
  const exponential_backoff_1 = require("../../http/exponential-backoff");
12
12
  const CONNECTION_READY_MAX_RETRIES = 4;
13
+ const CONNECTION_HANDSHAKE_TTL_MS = Number(process.env.BROKER_CONNECTION_HANDSHAKE_TTL_MS ?? 30000);
14
+ const isReady = (client) => Boolean(client.socket && client.metadata?.version && client.metadata?.capabilities);
15
+ /**
16
+ * Drops authorization placeholders that never completed the identify handshake.
17
+ * Ready connections and legacy entries without a handshake timestamp are kept.
18
+ */
19
+ const removeExpiredPendingHandshakes = (connections, token, now = Date.now()) => {
20
+ const activePool = (connections.get(token) ?? []).filter((client) => {
21
+ if (isReady(client)) {
22
+ return true;
23
+ }
24
+ // Only authorize-only entries are pending. An identified socket with
25
+ // incomplete metadata must remain tracked and follow the bad-metadata path.
26
+ if (client.socket ||
27
+ client.metadata ||
28
+ client.handshakeStartTime === undefined) {
29
+ return true;
30
+ }
31
+ return now - client.handshakeStartTime < CONNECTION_HANDSHAKE_TTL_MS;
32
+ });
33
+ if (activePool.length > 0) {
34
+ connections.set(token, activePool);
35
+ }
36
+ else {
37
+ connections.delete(token);
38
+ }
39
+ };
40
+ const findReadyConnection = (connections, token) => {
41
+ removeExpiredPendingHandshakes(connections, token);
42
+ const pool = connections.get(token) ?? [];
43
+ if (pool.length === 0) {
44
+ return { status: 'no-connection' };
45
+ }
46
+ const ready = pool.find(isReady);
47
+ if (ready) {
48
+ return { status: 'ready', client: ready };
49
+ }
50
+ if (pool.some((client) => !client.socket || !client.metadata)) {
51
+ // Still completing the handshake. Throwing asks retry() for another attempt.
52
+ throw new Error('client handshake in progress');
53
+ }
54
+ return { status: 'bad-metadata' };
55
+ };
13
56
  const overloadHttpRequestWithConnectionDetailsMiddleware = async (req, res, next) => {
14
57
  const connections = (0, socket_1.getSocketConnections)();
15
58
  const token = req.params.token;
@@ -61,33 +104,12 @@ const overloadHttpRequestWithConnectionDetailsMiddleware = async (req, res, next
61
104
  return res.status(404).json({ ok: false });
62
105
  }
63
106
  }
64
- // Grab the pool of connections for this token
65
- const connection = connections.get(token);
66
- // Make sure a connection actually exists before proceeding
67
- if (connection.length === 0) {
68
- logger_1.log.warn({ desensitizedToken, requestId }, 'No connection in pool found.');
69
- res.setHeader('x-broker-failure', 'no-connection');
70
- return res.status(404).json({ ok: false });
71
- }
72
- const isReady = (c) => Boolean(c.socket && c.metadata?.version && c.metadata?.capabilities);
73
- // The pool is newest-first, so find() returns the newest fully-ready
74
- // connection. This keeps HA clients immune to reconnect churn, which will
75
- // briefly create a not-yet-ready connection. If none is ready yet but a connection is still
76
- // completing its handshake, retry with exponential backoff. A permanently-incomplete pool
77
- // won't become ready, so return without retrying.
78
- let client;
107
+ // If no connection is ready yet but one is still completing its handshake,
108
+ // retry with exponential backoff. A permanently-incomplete pool won't become
109
+ // ready, so return without retrying.
110
+ let lookup;
79
111
  try {
80
- client = await (0, exponential_backoff_1.retry)(() => {
81
- const pool = connections.get(token) ?? [];
82
- const ready = pool.find(isReady);
83
- if (ready) {
84
- return ready;
85
- }
86
- if (pool.some((c) => !c.socket || !c.metadata)) {
87
- throw new Error('client handshake in progress');
88
- }
89
- return undefined;
90
- }, {
112
+ lookup = await (0, exponential_backoff_1.retry)(() => findReadyConnection(connections, token), {
91
113
  retries: CONNECTION_READY_MAX_RETRIES,
92
114
  operation: 'await-ready-broker-connection',
93
115
  });
@@ -100,7 +122,14 @@ const overloadHttpRequestWithConnectionDetailsMiddleware = async (req, res, next
100
122
  res.setHeader('Retry-After', '1');
101
123
  return res.status(503).json({ ok: false });
102
124
  }
103
- if (!client) {
125
+ if (lookup.status === 'no-connection') {
126
+ // The pool was empty on entry, or every entry in it was an expired
127
+ // handshake and was pruned. Either way there is nothing to serve.
128
+ logger_1.log.warn({ desensitizedToken, requestId }, 'No connection in pool found.');
129
+ res.setHeader('x-broker-failure', 'no-connection');
130
+ return res.status(404).json({ ok: false });
131
+ }
132
+ if (lookup.status === 'bad-metadata') {
104
133
  // Connections are present but missing required metadata (e.g. a legacy
105
134
  // client that never sends capabilities) — permanent for this client, so keep
106
135
  // the fast-fail 400 to avoid turning these into retry storms.
@@ -108,6 +137,7 @@ const overloadHttpRequestWithConnectionDetailsMiddleware = async (req, res, next
108
137
  res.setHeader('x-broker-failure', 'bad-request');
109
138
  return res.status(400).json({ ok: false });
110
139
  }
140
+ const client = lookup.client;
111
141
  res.locals.websocket = client.socket;
112
142
  res.locals.socketVersion = client.socketVersion;
113
143
  res.locals.capabilities = client.metadata.capabilities;
@@ -1 +1 @@
1
- {"version":3,"file":"httpRequestHandler.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/routesHandlers/httpRequestHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpRequestHandler.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/routesHandlers/httpRequestHandler.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.bindSocketToWebserver = exports.getSocketConnectionByIdentifier = exports.getSocketConnections = void 0;
6
+ exports.bindSocketToWebserver = exports.findClientToRefreshCreds = exports.addAuthorizedHandshake = exports.removePendingHandshake = exports.getSocketConnectionByIdentifier = exports.getSocketConnections = void 0;
7
7
  const primus_1 = __importDefault(require("primus"));
8
8
  const primus_emitter_1 = __importDefault(require("primus-emitter"));
9
9
  const errorHandler_1 = require("./socketHandlers/errorHandler");
@@ -23,6 +23,70 @@ const getSocketConnectionByIdentifier = (identifier) => {
23
23
  return socketConnections.get(identifier);
24
24
  };
25
25
  exports.getSocketConnectionByIdentifier = getSocketConnectionByIdentifier;
26
+ /**
27
+ * Removes the pending entry for a handshake that closed before identifying.
28
+ *
29
+ * The handshake id ensures an older connection cannot remove a newer reconnect.
30
+ * If the client did not send enough identity headers, the entry is left for the
31
+ * TTL cleanup.
32
+ *
33
+ * Returns true if an entry was removed.
34
+ */
35
+ const removePendingHandshake = (identifier, { brokerClientId, role, handshakeId }) => {
36
+ if (!brokerClientId || !handshakeId) {
37
+ return false;
38
+ }
39
+ const clientPool = socketConnections.get(identifier);
40
+ if (!clientPool) {
41
+ return false;
42
+ }
43
+ const pendingIndex = clientPool.findIndex((client) => !client.socket &&
44
+ client.handshakeId === handshakeId &&
45
+ client.brokerClientId === brokerClientId &&
46
+ client.role === role);
47
+ if (pendingIndex < 0) {
48
+ return false;
49
+ }
50
+ clientPool.splice(pendingIndex, 1);
51
+ if (clientPool.length === 0) {
52
+ socketConnections.delete(identifier);
53
+ }
54
+ return true;
55
+ };
56
+ exports.removePendingHandshake = removePendingHandshake;
57
+ /**
58
+ * Adds a handshake to the connection pool after it has been authorized.
59
+ *
60
+ * A reconnect stays separate from the existing live connection, so closing the
61
+ * old socket cannot remove the new handshake. If there is already a pending
62
+ * handshake for the same client and role, the newer attempt replaces it.
63
+ */
64
+ const addAuthorizedHandshake = (identifier, currentClient) => {
65
+ const clientPool = socketConnections.get(identifier) ?? [];
66
+ const pendingHandshakeIndex = clientPool.findIndex((client) => !client.socket &&
67
+ client.brokerClientId === currentClient.brokerClientId &&
68
+ client.role === currentClient.role);
69
+ if (pendingHandshakeIndex < 0) {
70
+ // Keep an identified connection separate from its reconnect attempt.
71
+ // If the old socket closes first, the new handshake must remain seated.
72
+ clientPool.unshift(currentClient);
73
+ }
74
+ else {
75
+ clientPool[pendingHandshakeIndex] = currentClient;
76
+ }
77
+ socketConnections.set(identifier, clientPool);
78
+ };
79
+ exports.addAuthorizedHandshake = addAuthorizedHandshake;
80
+ /**
81
+ * Finds the connection to update after an auth refresh.
82
+ * Prefers the live connection when a reconnect is also pending, so the active
83
+ * socket does not get disconnected for using stale credentials.
84
+ */
85
+ const findClientToRefreshCreds = (clientPool, brokerClientId, role) => {
86
+ const matches = clientPool.filter((client) => client.brokerClientId === brokerClientId && client.role === role);
87
+ return matches.find((client) => client.socket) ?? matches[0];
88
+ };
89
+ exports.findClientToRefreshCreds = findClientToRefreshCreds;
26
90
  const socket = ({ server, loadedServerOpts }) => {
27
91
  const ioConfig = {
28
92
  transformer: 'engine.io',
@@ -43,7 +107,10 @@ const socket = ({ server, loadedServerOpts }) => {
43
107
  .toLowerCase();
44
108
  // Primus authorize callbacks receive the raw HTTP upgrade request before
45
109
  // the Express middleware chain runs, so req.requestId is not available here.
46
- const requestId = req.headers['snyk-request-id'];
110
+ // The client sends a fresh snyk-request-id per connection attempt, so it
111
+ // also identifies this handshake when the socket later closes.
112
+ const { handshakeId } = (0, authHelpers_1.getHandshakeIdentityFromHeaders)(req.headers);
113
+ const requestId = handshakeId;
47
114
  try {
48
115
  const { brokerClientId, credentials, role } =
49
116
  // deepcode ignore Ssrf: request URL comes from the filter response, with the origin url being injected by the filtered version
@@ -58,21 +125,10 @@ const socket = ({ server, loadedServerOpts }) => {
58
125
  brokerAppClientId,
59
126
  role: (role ?? client_1.Role.primary),
60
127
  credsValidationTime: nowDate,
128
+ handshakeStartTime: Date.now(),
129
+ handshakeId,
61
130
  };
62
- const connections = (0, exports.getSocketConnections)();
63
- const clientPool = connections.get(connectionIdentifier) || [];
64
- const currentClientIndex = clientPool.findIndex((x) => x.brokerClientId === currentClient.brokerClientId &&
65
- x.role === currentClient.role);
66
- if (currentClientIndex < 0) {
67
- clientPool.unshift(currentClient);
68
- }
69
- else {
70
- clientPool[currentClientIndex] = {
71
- ...clientPool[currentClientIndex],
72
- ...currentClient,
73
- };
74
- }
75
- connections.set(connectionIdentifier, clientPool);
131
+ (0, exports.addAuthorizedHandshake)(connectionIdentifier, currentClient);
76
132
  }
77
133
  catch (err) {
78
134
  if (err instanceof authHelpers_1.BrokerAuthError) {
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../../lib/hybrid-sdk/server/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../../lib/hybrid-sdk/server/socket.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ const metrics_1 = require("../../common/utils/metrics");
5
5
  const logger_1 = require("../../../logs/logger");
6
6
  const dispatcher_1 = require("../infra/dispatcher");
7
7
  const socket_1 = require("../socket");
8
+ const authHelpers_1 = require("../auth/authHelpers");
8
9
  const token_1 = require("../utils/token");
9
10
  const identifyHandler_1 = require("./identifyHandler");
10
11
  const handleConnectionCloseOnSocket = (closeReason, socket, token, clientId, identified) => {
@@ -30,12 +31,18 @@ const handleConnectionCloseOnSocket = (closeReason, socket, token, clientId, ide
30
31
  connections.delete(token);
31
32
  }
32
33
  (0, metrics_1.decrementSocketConnectionGauge)();
34
+ (0, identifyHandler_1.rmClientIdFromTerminationMap)(token, clientId);
35
+ setImmediate(async () => await (0, dispatcher_1.clientDisconnected)(token, clientId));
33
36
  }
34
37
  else {
35
- logger_1.log.warn({ maskedToken, hashedToken }, 'Client disconnected before identifying itself.');
38
+ // No pool entry references this socket, because the socket is only
39
+ // attached by identify. The authorize hook still seated an entry for this
40
+ // handshake, and nothing else removes it. Without this the entry remains
41
+ // until an inbound request prunes it by handshake TTL.
42
+ const identity = (0, authHelpers_1.getHandshakeIdentityFromHeaders)(socket.request.headers);
43
+ const removed = (0, socket_1.removePendingHandshake)(token, identity);
44
+ logger_1.log.warn({ maskedToken, hashedToken, ...identity, removed }, 'Client disconnected before identifying itself.');
36
45
  }
37
- (0, identifyHandler_1.rmClientIdFromTerminationMap)(token, clientId);
38
- setImmediate(async () => await (0, dispatcher_1.clientDisconnected)(token, clientId));
39
46
  }
40
47
  };
41
48
  exports.handleConnectionCloseOnSocket = handleConnectionCloseOnSocket;
@@ -1 +1 @@
1
- {"version":3,"file":"closeHandler.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/socketHandlers/closeHandler.ts"],"names":[],"mappings":";;;AAAA,wDAA4E;AAC5E,iDAAqD;AACrD,oDAAyD;AACzD,sCAAiD;AACjD,0CAAsD;AACtD,uDAAiE;AAG1D,MAAM,6BAA6B,GAAG,CAC3C,WAAmB,EACnB,MAAc,EACd,KAAyB,EACzB,QAAgB,EAChB,UAAmB,EACnB,EAAE;IACF,IAAI,KAAK,EAAE;QACT,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;QACjE,IAAI,UAAU,EAAE;YACd,MAAM,WAAW,GAAG,IAAA,6BAAoB,GAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,WAAW;iBAC3B,GAAG,CAAC,KAAK,CAAC;gBACX,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACvC,MAAM,kBAAkB,GACtB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACvD,YAAM,CAAC,IAAI,CACT;gBACE,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,yBAAyB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;aACnD,EACD,2BAA2B,CAC5B,CAAC;YACF,IAAI,kBAAkB,EAAE,MAAM,EAAE;gBAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;aAC5C;iBAAM;gBACL,YAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBAC9D,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC3B;YACD,IAAA,wCAA8B,GAAE,CAAC;SAClC;aAAM;YACL,YAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,WAAW,EAAE,EAC5B,gDAAgD,CACjD,CAAC;SACH;QACD,IAAA,8CAA4B,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9C,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAA,+BAAkB,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;KACrE;AACH,CAAC,CAAC;AAzCW,QAAA,6BAA6B,iCAyCxC"}
1
+ {"version":3,"file":"closeHandler.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/socketHandlers/closeHandler.ts"],"names":[],"mappings":";;;AAAA,wDAA4E;AAC5E,iDAAqD;AACrD,oDAAyD;AACzD,sCAAyE;AACzE,qDAAsE;AACtE,0CAAsD;AACtD,uDAAiE;AAG1D,MAAM,6BAA6B,GAAG,CAC3C,WAAmB,EACnB,MAAc,EACd,KAAyB,EACzB,QAAgB,EAChB,UAAmB,EACnB,EAAE;IACF,IAAI,KAAK,EAAE;QACT,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;QACjE,IAAI,UAAU,EAAE;YACd,MAAM,WAAW,GAAG,IAAA,6BAAoB,GAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,WAAW;iBAC3B,GAAG,CAAC,KAAK,CAAC;gBACX,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACvC,MAAM,kBAAkB,GACtB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACvD,YAAM,CAAC,IAAI,CACT;gBACE,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,yBAAyB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;aACnD,EACD,2BAA2B,CAC5B,CAAC;YACF,IAAI,kBAAkB,EAAE,MAAM,EAAE;gBAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;aAC5C;iBAAM;gBACL,YAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBAC9D,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC3B;YACD,IAAA,wCAA8B,GAAE,CAAC;YACjC,IAAA,8CAA4B,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9C,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAA,+BAAkB,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;aAAM;YACL,mEAAmE;YACnE,0EAA0E;YAC1E,yEAAyE;YACzE,uDAAuD;YACvD,MAAM,QAAQ,GAAG,IAAA,6CAA+B,EAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,IAAA,+BAAsB,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACxD,YAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,EAClD,gDAAgD,CACjD,CAAC;SACH;KACF;AACH,CAAC,CAAC;AA/CW,QAAA,6BAA6B,iCA+CxC"}
@@ -23,7 +23,15 @@ const handleSocketConnection = (socket) => {
23
23
  clientId = clientData.metadata.clientId;
24
24
  identified = (0, identifyHandler_1.handleIdentifyOnSocket)(clientData, socket, token);
25
25
  });
26
+ // Primus can emit more than one terminal event for the same socket. Treat
27
+ // teardown as one lifecycle transition so metrics, dispatcher calls and pool
28
+ // cleanup happen exactly once.
29
+ let terminalEventHandled = false;
26
30
  ['close', 'end', 'disconnection', 'destroy', 'timeout'].forEach((e) => socket.on(e, () => {
31
+ if (terminalEventHandled) {
32
+ return;
33
+ }
34
+ terminalEventHandled = true;
27
35
  (0, metrics_1.incrementSocketCloseReasonCount)(e);
28
36
  (0, closeHandler_1.handleConnectionCloseOnSocket)(e, socket, token, clientId, identified);
29
37
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"connectionHandler.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/socketHandlers/connectionHandler.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,0CAAsD;AACtD,uDAA2D;AAC3D,iDAA+D;AAC/D,iDAAmD;AACnD,yDAAqE;AACrE,oDAAgE;AAChE,wDAA6E;AAGtE,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IACvD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;SACtC,UAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC;SACxC,WAAW,EAAE,CAAC;IAEjB,MAAM,iBAAiB,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;IACtD,YAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAE7D,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAEpE,yDAAyD;IACzD,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;QACnC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,UAAU,GAAG,IAAA,wCAAsB,EAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACpE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE;QAChB,IAAA,yCAA+B,EAAC,CAAC,CAAC,CAAC;QACnC,IAAA,4CAA6B,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAS,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,YAAM,CAAC,IAAI,CACT;YACE,WAAW,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC;YAC7B,WAAW,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC;YAC7B,QAAQ;YACR,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,EACD,oCAAoC,CACrC,CAAC;QACF,IAAA,kDAA+B,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gCAAiB,EAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAxCW,QAAA,sBAAsB,0BAwCjC"}
1
+ {"version":3,"file":"connectionHandler.js","sourceRoot":"","sources":["../../../../../lib/hybrid-sdk/server/socketHandlers/connectionHandler.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,0CAAsD;AACtD,uDAA2D;AAC3D,iDAA+D;AAC/D,iDAAmD;AACnD,yDAAqE;AACrE,oDAAgE;AAChE,wDAA6E;AAGtE,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IACvD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;SACtC,UAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC;SACxC,WAAW,EAAE,CAAC;IAEjB,MAAM,iBAAiB,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;IACtD,YAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAE7D,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAEpE,yDAAyD;IACzD,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;QACnC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,UAAU,GAAG,IAAA,wCAAsB,EAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,6EAA6E;IAC7E,+BAA+B;IAC/B,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACpE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE;QAChB,IAAI,oBAAoB,EAAE;YACxB,OAAO;SACR;QACD,oBAAoB,GAAG,IAAI,CAAC;QAC5B,IAAA,yCAA+B,EAAC,CAAC,CAAC,CAAC;QACnC,IAAA,4CAA6B,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAS,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,YAAM,CAAC,IAAI,CACT;YACE,WAAW,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC;YAC7B,WAAW,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC;YAC7B,QAAQ;YACR,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,EACD,oCAAoC,CACrC,CAAC;QACF,IAAA,kDAA+B,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gCAAiB,EAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAhDW,QAAA,sBAAsB,0BAgDjC"}