@tetrascience-npm/ts-connectors-sdk 4.0.0-beta.182.1 → 4.0.0-beta.183.1
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/dist/api-tests/fixture/test-proxy-server.d.ts +10 -0
- package/dist/api-tests/fixture/test-proxy-server.d.ts.map +1 -1
- package/dist/api-tests/fixture/test-proxy-server.js +18 -0
- package/dist/api-tests/fixture/test-proxy-server.js.map +1 -1
- package/dist/api-tests/iam-proxy.test.d.ts +2 -0
- package/dist/api-tests/iam-proxy.test.d.ts.map +1 -0
- package/dist/api-tests/iam-proxy.test.js +138 -0
- package/dist/api-tests/iam-proxy.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,7 @@ export declare class TestProxyServer {
|
|
|
17
17
|
private mockResponses;
|
|
18
18
|
private socketHangRules;
|
|
19
19
|
private activeSockets;
|
|
20
|
+
private connectedHosts;
|
|
20
21
|
constructor();
|
|
21
22
|
/**
|
|
22
23
|
* Add a delay rule for requests matching the given pattern.
|
|
@@ -43,6 +44,15 @@ export declare class TestProxyServer {
|
|
|
43
44
|
* Clear all delay rules, mock responses, and socket hang rules.
|
|
44
45
|
*/
|
|
45
46
|
clearRules(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the list of hostnames (host:port) that sent a CONNECT request through this proxy.
|
|
49
|
+
* Useful for asserting that specific traffic was routed through the proxy.
|
|
50
|
+
*/
|
|
51
|
+
getConnectedHosts(): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Clear the recorded connected hosts list.
|
|
54
|
+
*/
|
|
55
|
+
clearConnectedHosts(): void;
|
|
46
56
|
/**
|
|
47
57
|
* Start the proxy server on an available port.
|
|
48
58
|
* Returns the port number.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-proxy-server.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,aAAa,CAA8B;;
|
|
1
|
+
{"version":3,"file":"test-proxy-server.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,cAAc,CAAgB;;IAOtC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpD;;;;OAIG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;;OAGG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAc9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAwE1B;;OAEG;IACH,OAAO,CAAC,cAAc;CAIvB"}
|
|
@@ -38,6 +38,7 @@ class TestProxyServer {
|
|
|
38
38
|
this.mockResponses = [];
|
|
39
39
|
this.socketHangRules = [];
|
|
40
40
|
this.activeSockets = new Set();
|
|
41
|
+
this.connectedHosts = [];
|
|
41
42
|
this.server = http_1.default.createServer(this.handleHttpRequest.bind(this));
|
|
42
43
|
this.server.on('connect', this.handleHttpsConnect.bind(this));
|
|
43
44
|
}
|
|
@@ -76,6 +77,19 @@ class TestProxyServer {
|
|
|
76
77
|
this.mockResponses = [];
|
|
77
78
|
this.socketHangRules = [];
|
|
78
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns the list of hostnames (host:port) that sent a CONNECT request through this proxy.
|
|
82
|
+
* Useful for asserting that specific traffic was routed through the proxy.
|
|
83
|
+
*/
|
|
84
|
+
getConnectedHosts() {
|
|
85
|
+
return [...this.connectedHosts];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Clear the recorded connected hosts list.
|
|
89
|
+
*/
|
|
90
|
+
clearConnectedHosts() {
|
|
91
|
+
this.connectedHosts = [];
|
|
92
|
+
}
|
|
79
93
|
/**
|
|
80
94
|
* Start the proxy server on an available port.
|
|
81
95
|
* Returns the port number.
|
|
@@ -178,6 +192,10 @@ class TestProxyServer {
|
|
|
178
192
|
// Track ALL client sockets so we can clean them up when stopping the server
|
|
179
193
|
logIfDebug('[ProxyServer] Handling HTTPS CONNECT:', url, '(Active sockets:', this.activeSockets.size, ')');
|
|
180
194
|
this.activeSockets.add(clientSocket);
|
|
195
|
+
// Record the hostname for connection tracking assertions
|
|
196
|
+
if (req.url) {
|
|
197
|
+
this.connectedHosts.push(req.url);
|
|
198
|
+
}
|
|
181
199
|
// Set up cleanup listeners for all sockets
|
|
182
200
|
const cleanup = () => {
|
|
183
201
|
logIfDebug('[ProxyServer] Socket cleanup. Removing from active sockets.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-proxy-server.js","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,kDAA0B;AAC1B,8CAAsB;AACtB,6BAA0B;AAmB1B,sDAAsD;AAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AAE3E;;;;;;;;;;;GAWG;AACH,MAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"test-proxy-server.js","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam-proxy.test.d.ts","sourceRoot":"","sources":["../../api-tests/iam-proxy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
const s3 = __importStar(require("@aws-sdk/client-s3"));
|
|
46
|
+
const vitest_1 = require("vitest");
|
|
47
|
+
const fixture_1 = require("./fixture/fixture");
|
|
48
|
+
const test_proxy_server_1 = require("./fixture/test-proxy-server");
|
|
49
|
+
/**
|
|
50
|
+
* IAM_PROXY Routing Tests (WA-1350)
|
|
51
|
+
*
|
|
52
|
+
* These tests verify that when IAM_PROXY is set, AWS SDK traffic is routed
|
|
53
|
+
* through that proxy, and when IAM_PROXY is unset, traffic bypasses the proxy.
|
|
54
|
+
*
|
|
55
|
+
* We use TestProxyServer's connection tracking to assert that CONNECT requests
|
|
56
|
+
* for AWS endpoints are received by the proxy — without needing a real restricted
|
|
57
|
+
* network environment or socket hang rules.
|
|
58
|
+
*
|
|
59
|
+
* Tests use a fully initialized TDPClient (via connectorTest / standaloneConnector)
|
|
60
|
+
* and obtain an S3 client via tdpClient.createAwsClient(), which is the public API
|
|
61
|
+
* connector authors use. This exercises the real env-based agent selection logic
|
|
62
|
+
* end-to-end, including the handler wiring inside the connector.
|
|
63
|
+
*/
|
|
64
|
+
(0, vitest_1.describe)('IAM_PROXY Routing Tests', () => {
|
|
65
|
+
(0, fixture_1.connectorTest)('DAM-T190: AWS SDK traffic is routed through IAM_PROXY when set', { timeout: 30 * 1000 }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
|
|
66
|
+
const proxyServer = new test_proxy_server_1.TestProxyServer();
|
|
67
|
+
const proxyPort = yield proxyServer.start();
|
|
68
|
+
const originalIamProxy = process.env.IAM_PROXY;
|
|
69
|
+
try {
|
|
70
|
+
process.env.IAM_PROXY = `http://localhost:${proxyPort}`;
|
|
71
|
+
yield standaloneConnector.start();
|
|
72
|
+
const tdpClient = standaloneConnector.tdpClient;
|
|
73
|
+
// Clear CONNECTs recorded during connector startup so only the
|
|
74
|
+
// explicit ListBuckets call below contributes to the assertion.
|
|
75
|
+
proxyServer.clearConnectedHosts();
|
|
76
|
+
const s3Client = tdpClient.createAwsClient(s3.S3Client);
|
|
77
|
+
// The request may fail (e.g. auth error), but not before the AWS SDK
|
|
78
|
+
// has sent a CONNECT to our proxy, which we can observe.
|
|
79
|
+
yield s3Client.send(new s3.ListBucketsCommand({})).catch(() => { });
|
|
80
|
+
const awsConnects = proxyServer.getConnectedHosts().filter((host) => host.includes('amazonaws.com'));
|
|
81
|
+
expect(awsConnects.length).toBeGreaterThan(0);
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
yield proxyServer.stop();
|
|
85
|
+
if (originalIamProxy !== undefined) {
|
|
86
|
+
process.env.IAM_PROXY = originalIamProxy;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
delete process.env.IAM_PROXY;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}));
|
|
93
|
+
(0, fixture_1.connectorTest)('DAM-T191: AWS SDK traffic does NOT route through IAM_PROXY when unset', { timeout: 30 * 1000 }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
|
|
94
|
+
const proxyServer = new test_proxy_server_1.TestProxyServer();
|
|
95
|
+
yield proxyServer.start();
|
|
96
|
+
const originalIamProxy = process.env.IAM_PROXY;
|
|
97
|
+
const originalHttpProxy = process.env.http_proxy;
|
|
98
|
+
const originalHttpsProxy = process.env.https_proxy;
|
|
99
|
+
// proxy-agent / proxy-from-env also honours uppercase variants; clear them
|
|
100
|
+
// so that CI-level proxy settings don't accidentally route traffic through
|
|
101
|
+
// an external proxy and make the "no CONNECT" assertion fail.
|
|
102
|
+
const originalHTTP_PROXY = process.env.HTTP_PROXY;
|
|
103
|
+
const originalHTTPS_PROXY = process.env.HTTPS_PROXY;
|
|
104
|
+
const originalNO_PROXY = process.env.NO_PROXY;
|
|
105
|
+
try {
|
|
106
|
+
// Unset IAM_PROXY and all standard proxy vars so ProxyAgent makes direct connections
|
|
107
|
+
delete process.env.IAM_PROXY;
|
|
108
|
+
delete process.env.http_proxy;
|
|
109
|
+
delete process.env.https_proxy;
|
|
110
|
+
delete process.env.HTTP_PROXY;
|
|
111
|
+
delete process.env.HTTPS_PROXY;
|
|
112
|
+
delete process.env.NO_PROXY;
|
|
113
|
+
yield standaloneConnector.start();
|
|
114
|
+
const tdpClient = standaloneConnector.tdpClient;
|
|
115
|
+
const s3Client = tdpClient.createAwsClient(s3.S3Client);
|
|
116
|
+
yield s3Client.send(new s3.ListBucketsCommand({})).catch(() => { });
|
|
117
|
+
// No CONNECT to our test proxy should have been recorded
|
|
118
|
+
const awsConnects = proxyServer.getConnectedHosts().filter((host) => host.includes('amazonaws.com'));
|
|
119
|
+
expect(awsConnects.length).toBe(0);
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
yield proxyServer.stop();
|
|
123
|
+
if (originalIamProxy !== undefined)
|
|
124
|
+
process.env.IAM_PROXY = originalIamProxy;
|
|
125
|
+
if (originalHttpProxy !== undefined)
|
|
126
|
+
process.env.http_proxy = originalHttpProxy;
|
|
127
|
+
if (originalHttpsProxy !== undefined)
|
|
128
|
+
process.env.https_proxy = originalHttpsProxy;
|
|
129
|
+
if (originalHTTP_PROXY !== undefined)
|
|
130
|
+
process.env.HTTP_PROXY = originalHTTP_PROXY;
|
|
131
|
+
if (originalHTTPS_PROXY !== undefined)
|
|
132
|
+
process.env.HTTPS_PROXY = originalHTTPS_PROXY;
|
|
133
|
+
if (originalNO_PROXY !== undefined)
|
|
134
|
+
process.env.NO_PROXY = originalNO_PROXY;
|
|
135
|
+
}
|
|
136
|
+
}));
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=iam-proxy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam-proxy.test.js","sourceRoot":"","sources":["../../api-tests/iam-proxy.test.ts"],"names":[],"mappings":"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"}
|