@tetrascience-npm/ts-connectors-sdk 3.1.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/CHANGELOG.md +201 -0
- package/LICENSE +201 -0
- package/README.md +123 -0
- package/dist/api-tests/configuration.test.d.ts +2 -0
- package/dist/api-tests/configuration.test.d.ts.map +1 -0
- package/dist/api-tests/configuration.test.js +49 -0
- package/dist/api-tests/configuration.test.js.map +1 -0
- package/dist/api-tests/connector-lifetime.test.d.ts +2 -0
- package/dist/api-tests/connector-lifetime.test.d.ts.map +1 -0
- package/dist/api-tests/connector-lifetime.test.js +64 -0
- package/dist/api-tests/connector-lifetime.test.js.map +1 -0
- package/dist/api-tests/connector-shutdown.test.d.ts +2 -0
- package/dist/api-tests/connector-shutdown.test.d.ts.map +1 -0
- package/dist/api-tests/connector-shutdown.test.js +76 -0
- package/dist/api-tests/connector-shutdown.test.js.map +1 -0
- package/dist/api-tests/fixture/assertions.d.ts +4 -0
- package/dist/api-tests/fixture/assertions.d.ts.map +1 -0
- package/dist/api-tests/fixture/assertions.js +8 -0
- package/dist/api-tests/fixture/assertions.js.map +1 -0
- package/dist/api-tests/fixture/config.d.ts +65 -0
- package/dist/api-tests/fixture/config.d.ts.map +1 -0
- package/dist/api-tests/fixture/config.js +24 -0
- package/dist/api-tests/fixture/config.js.map +1 -0
- package/dist/api-tests/fixture/connector-api.d.ts +126 -0
- package/dist/api-tests/fixture/connector-api.d.ts.map +1 -0
- package/dist/api-tests/fixture/connector-api.js +151 -0
- package/dist/api-tests/fixture/connector-api.js.map +1 -0
- package/dist/api-tests/fixture/connectors/test-connector.d.ts +39 -0
- package/dist/api-tests/fixture/connectors/test-connector.d.ts.map +1 -0
- package/dist/api-tests/fixture/connectors/test-connector.js +188 -0
- package/dist/api-tests/fixture/connectors/test-connector.js.map +1 -0
- package/dist/api-tests/fixture/create-http-client.d.ts +6 -0
- package/dist/api-tests/fixture/create-http-client.d.ts.map +1 -0
- package/dist/api-tests/fixture/create-http-client.js +52 -0
- package/dist/api-tests/fixture/create-http-client.js.map +1 -0
- package/dist/api-tests/fixture/fixture.d.ts +34 -0
- package/dist/api-tests/fixture/fixture.d.ts.map +1 -0
- package/dist/api-tests/fixture/fixture.js +62 -0
- package/dist/api-tests/fixture/fixture.js.map +1 -0
- package/dist/api-tests/fixture/test-connector-factory.d.ts +21 -0
- package/dist/api-tests/fixture/test-connector-factory.d.ts.map +1 -0
- package/dist/api-tests/fixture/test-connector-factory.js +78 -0
- package/dist/api-tests/fixture/test-connector-factory.js.map +1 -0
- package/dist/api-tests/label-validation.test.d.ts +2 -0
- package/dist/api-tests/label-validation.test.d.ts.map +1 -0
- package/dist/api-tests/label-validation.test.js +158 -0
- package/dist/api-tests/label-validation.test.js.map +1 -0
- package/dist/api-tests/standalone-cloudwatch-logs.test.d.ts +2 -0
- package/dist/api-tests/standalone-cloudwatch-logs.test.d.ts.map +1 -0
- package/dist/api-tests/standalone-cloudwatch-logs.test.js +32 -0
- package/dist/api-tests/standalone-cloudwatch-logs.test.js.map +1 -0
- package/dist/api-tests/user-agent.test.d.ts +2 -0
- package/dist/api-tests/user-agent.test.d.ts.map +1 -0
- package/dist/api-tests/user-agent.test.js +191 -0
- package/dist/api-tests/user-agent.test.js.map +1 -0
- package/dist/src/api.d.ts +353 -0
- package/dist/src/api.d.ts.map +1 -0
- package/dist/src/api.js +278 -0
- package/dist/src/api.js.map +1 -0
- package/dist/src/auth/auth-token-provider.d.ts +7 -0
- package/dist/src/auth/auth-token-provider.d.ts.map +1 -0
- package/dist/src/auth/auth-token-provider.js +3 -0
- package/dist/src/auth/auth-token-provider.js.map +1 -0
- package/dist/src/auth/aws-client-provider.d.ts +11 -0
- package/dist/src/auth/aws-client-provider.d.ts.map +1 -0
- package/dist/src/auth/aws-client-provider.js +3 -0
- package/dist/src/auth/aws-client-provider.js.map +1 -0
- package/dist/src/auth/aws-env-client-provider.d.ts +20 -0
- package/dist/src/auth/aws-env-client-provider.d.ts.map +1 -0
- package/dist/src/auth/aws-env-client-provider.js +69 -0
- package/dist/src/auth/aws-env-client-provider.js.map +1 -0
- package/dist/src/auth/aws-refresh-client-provider.d.ts +26 -0
- package/dist/src/auth/aws-refresh-client-provider.d.ts.map +1 -0
- package/dist/src/auth/aws-refresh-client-provider.js +111 -0
- package/dist/src/auth/aws-refresh-client-provider.js.map +1 -0
- package/dist/src/auth/aws-secret-auth-token-provider.d.ts +9 -0
- package/dist/src/auth/aws-secret-auth-token-provider.d.ts.map +1 -0
- package/dist/src/auth/aws-secret-auth-token-provider.js +58 -0
- package/dist/src/auth/aws-secret-auth-token-provider.js.map +1 -0
- package/dist/src/auth/index.d.ts +7 -0
- package/dist/src/auth/index.d.ts.map +1 -0
- package/dist/src/auth/index.js +23 -0
- package/dist/src/auth/index.js.map +1 -0
- package/dist/src/auth/predefined-auth-token-provider.d.ts +7 -0
- package/dist/src/auth/predefined-auth-token-provider.d.ts.map +1 -0
- package/dist/src/auth/predefined-auth-token-provider.js +24 -0
- package/dist/src/auth/predefined-auth-token-provider.js.map +1 -0
- package/dist/src/auth/user-supplied-auth-token-provider.d.ts +7 -0
- package/dist/src/auth/user-supplied-auth-token-provider.d.ts.map +1 -0
- package/dist/src/auth/user-supplied-auth-token-provider.js +24 -0
- package/dist/src/auth/user-supplied-auth-token-provider.js.map +1 -0
- package/dist/src/certificates.d.ts +6 -0
- package/dist/src/certificates.d.ts.map +1 -0
- package/dist/src/certificates.js +88 -0
- package/dist/src/certificates.js.map +1 -0
- package/dist/src/checksums.d.ts +50 -0
- package/dist/src/checksums.d.ts.map +1 -0
- package/dist/src/checksums.js +32 -0
- package/dist/src/checksums.js.map +1 -0
- package/dist/src/config.d.ts +41 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +35 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/connector.d.ts +101 -0
- package/dist/src/connector.d.ts.map +1 -0
- package/dist/src/connector.js +374 -0
- package/dist/src/connector.js.map +1 -0
- package/dist/src/get-log-event-size.d.ts +3 -0
- package/dist/src/get-log-event-size.d.ts.map +1 -0
- package/dist/src/get-log-event-size.js +9 -0
- package/dist/src/get-log-event-size.js.map +1 -0
- package/dist/src/https-proxy-agent.d.ts +15 -0
- package/dist/src/https-proxy-agent.d.ts.map +1 -0
- package/dist/src/https-proxy-agent.js +31 -0
- package/dist/src/https-proxy-agent.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/logger.d.ts +60 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +284 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/manifest.d.ts +4 -0
- package/dist/src/manifest.d.ts.map +1 -0
- package/dist/src/manifest.js +30 -0
- package/dist/src/manifest.js.map +1 -0
- package/dist/src/metrics.d.ts +59 -0
- package/dist/src/metrics.d.ts.map +1 -0
- package/dist/src/metrics.js +125 -0
- package/dist/src/metrics.js.map +1 -0
- package/dist/src/polling-connector.d.ts +50 -0
- package/dist/src/polling-connector.d.ts.map +1 -0
- package/dist/src/polling-connector.js +169 -0
- package/dist/src/polling-connector.js.map +1 -0
- package/dist/src/schemas.d.ts +77 -0
- package/dist/src/schemas.d.ts.map +1 -0
- package/dist/src/schemas.js +80 -0
- package/dist/src/schemas.js.map +1 -0
- package/dist/src/streamToString.d.ts +3 -0
- package/dist/src/streamToString.d.ts.map +1 -0
- package/dist/src/streamToString.js +25 -0
- package/dist/src/streamToString.js.map +1 -0
- package/dist/src/tdp-client.d.ts +307 -0
- package/dist/src/tdp-client.d.ts.map +1 -0
- package/dist/src/tdp-client.js +823 -0
- package/dist/src/tdp-client.js.map +1 -0
- package/dist/src/to-cloudwatch-log-event.d.ts +4 -0
- package/dist/src/to-cloudwatch-log-event.d.ts.map +1 -0
- package/dist/src/to-cloudwatch-log-event.js +10 -0
- package/dist/src/to-cloudwatch-log-event.js.map +1 -0
- package/dist/src/types.d.ts +57 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +30 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +10 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +20 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/test/api.test.d.ts +2 -0
- package/dist/test/api.test.d.ts.map +1 -0
- package/dist/test/api.test.js +245 -0
- package/dist/test/api.test.js.map +1 -0
- package/dist/test/auth/aws-env-client-provider.test.d.ts +2 -0
- package/dist/test/auth/aws-env-client-provider.test.d.ts.map +1 -0
- package/dist/test/auth/aws-env-client-provider.test.js +56 -0
- package/dist/test/auth/aws-env-client-provider.test.js.map +1 -0
- package/dist/test/auth/aws-refresh-client-provider.test.d.ts +2 -0
- package/dist/test/auth/aws-refresh-client-provider.test.d.ts.map +1 -0
- package/dist/test/auth/aws-refresh-client-provider.test.js +118 -0
- package/dist/test/auth/aws-refresh-client-provider.test.js.map +1 -0
- package/dist/test/auth/aws-secret-auth-token-provider.test.d.ts +2 -0
- package/dist/test/auth/aws-secret-auth-token-provider.test.d.ts.map +1 -0
- package/dist/test/auth/aws-secret-auth-token-provider.test.js +74 -0
- package/dist/test/auth/aws-secret-auth-token-provider.test.js.map +1 -0
- package/dist/test/auth/predefined-auth-token-provider.test.d.ts +2 -0
- package/dist/test/auth/predefined-auth-token-provider.test.d.ts.map +1 -0
- package/dist/test/auth/predefined-auth-token-provider.test.js +24 -0
- package/dist/test/auth/predefined-auth-token-provider.test.js.map +1 -0
- package/dist/test/auth/user-supplied-auth-token-provider.test.d.ts +2 -0
- package/dist/test/auth/user-supplied-auth-token-provider.test.d.ts.map +1 -0
- package/dist/test/auth/user-supplied-auth-token-provider.test.js +24 -0
- package/dist/test/auth/user-supplied-auth-token-provider.test.js.map +1 -0
- package/dist/test/certificates.test.d.ts +2 -0
- package/dist/test/certificates.test.d.ts.map +1 -0
- package/dist/test/certificates.test.js +83 -0
- package/dist/test/certificates.test.js.map +1 -0
- package/dist/test/checksums.test.d.ts +2 -0
- package/dist/test/checksums.test.d.ts.map +1 -0
- package/dist/test/checksums.test.js +29 -0
- package/dist/test/checksums.test.js.map +1 -0
- package/dist/test/connector-shutdown.test.d.ts +2 -0
- package/dist/test/connector-shutdown.test.d.ts.map +1 -0
- package/dist/test/connector-shutdown.test.js +145 -0
- package/dist/test/connector-shutdown.test.js.map +1 -0
- package/dist/test/connector.test.d.ts +2 -0
- package/dist/test/connector.test.d.ts.map +1 -0
- package/dist/test/connector.test.js +286 -0
- package/dist/test/connector.test.js.map +1 -0
- package/dist/test/healthstatus-enum-values.test.d.ts +2 -0
- package/dist/test/healthstatus-enum-values.test.d.ts.map +1 -0
- package/dist/test/healthstatus-enum-values.test.js +18 -0
- package/dist/test/healthstatus-enum-values.test.js.map +1 -0
- package/dist/test/logger.test.d.ts +2 -0
- package/dist/test/logger.test.d.ts.map +1 -0
- package/dist/test/logger.test.js +301 -0
- package/dist/test/logger.test.js.map +1 -0
- package/dist/test/manifest.test.d.ts +2 -0
- package/dist/test/manifest.test.d.ts.map +1 -0
- package/dist/test/manifest.test.js +55 -0
- package/dist/test/manifest.test.js.map +1 -0
- package/dist/test/polling-connector.test.d.ts +2 -0
- package/dist/test/polling-connector.test.d.ts.map +1 -0
- package/dist/test/polling-connector.test.js +170 -0
- package/dist/test/polling-connector.test.js.map +1 -0
- package/dist/test/schemas.test.d.ts +2 -0
- package/dist/test/schemas.test.d.ts.map +1 -0
- package/dist/test/schemas.test.js +211 -0
- package/dist/test/schemas.test.js.map +1 -0
- package/dist/test/tdp-client.test.d.ts +2 -0
- package/dist/test/tdp-client.test.d.ts.map +1 -0
- package/dist/test/tdp-client.test.js +1204 -0
- package/dist/test/tdp-client.test.js.map +1 -0
- package/dist/test/test-connector/index.d.ts +2 -0
- package/dist/test/test-connector/index.d.ts.map +1 -0
- package/dist/test/test-connector/index.js +23 -0
- package/dist/test/test-connector/index.js.map +1 -0
- package/dist/test/test-connector/test-connector.d.ts +7 -0
- package/dist/test/test-connector/test-connector.d.ts.map +1 -0
- package/dist/test/test-connector/test-connector.js +32 -0
- package/dist/test/test-connector/test-connector.js.map +1 -0
- package/dist/test/test-utils/api-mocks.d.ts +6 -0
- package/dist/test/test-utils/api-mocks.d.ts.map +1 -0
- package/dist/test/test-utils/api-mocks.js +19 -0
- package/dist/test/test-utils/api-mocks.js.map +1 -0
- package/dist/test/test-utils/aws-mocks.d.ts +8 -0
- package/dist/test/test-utils/aws-mocks.d.ts.map +1 -0
- package/dist/test/test-utils/aws-mocks.js +39 -0
- package/dist/test/test-utils/aws-mocks.js.map +1 -0
- package/dist/test/test-utils/regex.d.ts +2 -0
- package/dist/test/test-utils/regex.d.ts.map +1 -0
- package/dist/test/test-utils/regex.js +7 -0
- package/dist/test/test-utils/regex.js.map +1 -0
- package/dist/test/utils.test.d.ts +2 -0
- package/dist/test/utils.test.d.ts.map +1 -0
- package/dist/test/utils.test.js +17 -0
- package/dist/test/utils.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.mts +3 -0
- package/dist/vitest.config.d.mts.map +1 -0
- package/dist/vitest.config.mjs +20 -0
- package/dist/vitest.config.mjs.map +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-shutdown.test.d.ts","sourceRoot":"","sources":["../../api-tests/connector-shutdown.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
13
|
+
const index_js_1 = require("../src/index.js");
|
|
14
|
+
const fixture_1 = require("./fixture/fixture");
|
|
15
|
+
(0, vitest_1.describe)('Connector shutdown', () => {
|
|
16
|
+
let originalSkipCloudwatch;
|
|
17
|
+
(0, vitest_1.beforeAll)(() => {
|
|
18
|
+
originalSkipCloudwatch = process.env['SKIP_CLOUDWATCH'];
|
|
19
|
+
process.env['SKIP_CLOUDWATCH'] = 'true';
|
|
20
|
+
});
|
|
21
|
+
(0, vitest_1.afterAll)(() => {
|
|
22
|
+
if (originalSkipCloudwatch) {
|
|
23
|
+
process.env['SKIP_CLOUDWATCH'] = originalSkipCloudwatch;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
delete process.env['SKIP_CLOUDWATCH'];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
(0, fixture_1.connectorTest)('DAM-T55: Disabling an IDLE connector should result in the connector being shut down', (_a) => __awaiter(void 0, [_a], void 0, function* ({ connectorApi, expect, standaloneConnector }) {
|
|
30
|
+
yield standaloneConnector.start();
|
|
31
|
+
const onlineCheck = yield connectorApi.waitForConnectorToBeOnline(standaloneConnector.connector.id);
|
|
32
|
+
expect(onlineCheck.status).toBe(200);
|
|
33
|
+
expect(onlineCheck.data.networkStatus).toBe('Online');
|
|
34
|
+
const connectorDetailsResponse = yield connectorApi.get(standaloneConnector.connector.id);
|
|
35
|
+
expect(connectorDetailsResponse.status).toBe(200);
|
|
36
|
+
if (connectorDetailsResponse.data.operatingStatus !== index_js_1.OperatingStatus.IDLE) {
|
|
37
|
+
const setStatusResponse = yield connectorApi.setStatus(standaloneConnector.connector.id, index_js_1.OperatingStatus.IDLE);
|
|
38
|
+
expect(setStatusResponse.status).toBe(200);
|
|
39
|
+
const stopCommand = yield standaloneConnector.waitForCommand(index_js_1.CommandAction.Stop);
|
|
40
|
+
expect(stopCommand, 'Expected to receive stop command').toBeDefined();
|
|
41
|
+
}
|
|
42
|
+
const shutdownSpy = vitest_1.vi.spyOn(standaloneConnector, 'shutdown');
|
|
43
|
+
const disableStatus = yield connectorApi.setStatus(standaloneConnector.connector.id, index_js_1.OperatingStatus.DISABLED);
|
|
44
|
+
expect(disableStatus.status).toBe(200);
|
|
45
|
+
const shutdownCommand = yield standaloneConnector.waitForCommand(index_js_1.CommandAction.Shutdown);
|
|
46
|
+
expect(shutdownCommand, 'Expected to receive shutdown command').toBeDefined();
|
|
47
|
+
expect(shutdownSpy).toHaveBeenCalled();
|
|
48
|
+
expect(standaloneConnector.isShutdown).toBe(true);
|
|
49
|
+
// call shutdown directly to make sure things are closed before the test ends
|
|
50
|
+
yield standaloneConnector.shutdown();
|
|
51
|
+
}));
|
|
52
|
+
(0, fixture_1.connectorTest)('DAM-T56: Disabling a RUNNING connector should result in the connector being shut down', (_a) => __awaiter(void 0, [_a], void 0, function* ({ connectorApi, expect, standaloneConnector }) {
|
|
53
|
+
yield standaloneConnector.start();
|
|
54
|
+
const onlineCheck = yield connectorApi.waitForConnectorToBeOnline(standaloneConnector.connector.id);
|
|
55
|
+
expect(onlineCheck.status).toBe(200);
|
|
56
|
+
expect(onlineCheck.data.networkStatus).toBe('Online');
|
|
57
|
+
const connectorDetailsResponse = yield connectorApi.get(standaloneConnector.connector.id);
|
|
58
|
+
expect(connectorDetailsResponse.status).toBe(200);
|
|
59
|
+
if (connectorDetailsResponse.data.operatingStatus !== index_js_1.OperatingStatus.RUNNING) {
|
|
60
|
+
const setStatusResponse = yield connectorApi.setStatus(standaloneConnector.connector.id, index_js_1.OperatingStatus.RUNNING);
|
|
61
|
+
expect(setStatusResponse.status).toBe(200);
|
|
62
|
+
const startCommand = yield standaloneConnector.waitForCommand(index_js_1.CommandAction.Start);
|
|
63
|
+
expect(startCommand, 'Expected to receive start command').toBeDefined();
|
|
64
|
+
}
|
|
65
|
+
const shutdownSpy = vitest_1.vi.spyOn(standaloneConnector, 'shutdown');
|
|
66
|
+
const disableStatus = yield connectorApi.setStatus(standaloneConnector.connector.id, index_js_1.OperatingStatus.DISABLED);
|
|
67
|
+
expect(disableStatus.status).toBe(200);
|
|
68
|
+
const shutdownCommand = yield standaloneConnector.waitForCommand(index_js_1.CommandAction.Shutdown);
|
|
69
|
+
expect(shutdownCommand, 'Expected to receive shutdown command').toBeDefined();
|
|
70
|
+
expect(shutdownSpy).toHaveBeenCalled();
|
|
71
|
+
expect(standaloneConnector.isShutdown).toBe(true);
|
|
72
|
+
// call shutdown directly to make sure things are closed before the test ends
|
|
73
|
+
yield standaloneConnector.shutdown();
|
|
74
|
+
}));
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=connector-shutdown.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-shutdown.test.js","sourceRoot":"","sources":["../../api-tests/connector-shutdown.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAA2D;AAE3D,8CAAiE;AACjE,+CAAkD;AAElD,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,sBAA0C,CAAC;IAE/C,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,GAAG,EAAE;QACZ,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,sBAAsB,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,uBAAa,EACX,qFAAqF,EACrF,KAAsD,EAAE,4CAAjD,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE;QAClD,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,wBAAwB,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1F,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,wBAAwB,CAAC,IAAI,CAAC,eAAe,KAAK,0BAAe,CAAC,IAAI,EAAE,CAAC;YAC3E,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,0BAAe,CAAC,IAAI,CAAC,CAAC;YAC/G,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3C,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,wBAAa,CAAC,IAAI,CAAC,CAAC;YACjF,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,WAAW,GAAG,WAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAE9D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,0BAAe,CAAC,QAAQ,CAAC,CAAC;QAC/G,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,wBAAa,CAAC,QAAQ,CAAC,CAAC;QACzF,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9E,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,6EAA6E;QAC7E,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC,CAAA,CACF,CAAC;IAEF,IAAA,uBAAa,EACX,uFAAuF,EACvF,KAAsD,EAAE,4CAAjD,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE;QAClD,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,wBAAwB,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1F,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,wBAAwB,CAAC,IAAI,CAAC,eAAe,KAAK,0BAAe,CAAC,OAAO,EAAE,CAAC;YAC9E,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,SAAS,CACpD,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAChC,0BAAe,CAAC,OAAO,CACxB,CAAC;YACF,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3C,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,wBAAa,CAAC,KAAK,CAAC,CAAC;YACnF,MAAM,CAAC,YAAY,EAAE,mCAAmC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1E,CAAC;QAED,MAAM,WAAW,GAAG,WAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAE9D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,0BAAe,CAAC,QAAQ,CAAC,CAAC;QAC/G,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,wBAAa,CAAC,QAAQ,CAAC,CAAC;QACzF,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9E,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,6EAA6E;QAC7E,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC,CAAA,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAEhH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectToBeAxiosError = expectToBeAxiosError;
|
|
4
|
+
const axios_1 = require("axios");
|
|
5
|
+
function expectToBeAxiosError(expect, e) {
|
|
6
|
+
expect((0, axios_1.isAxiosError)(e)).toBe(true);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=assertions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../api-tests/fixture/assertions.ts"],"names":[],"mappings":";;AAGA,oDAEC;AALD,iCAAiD;AAGjD,SAAgB,oBAAoB,CAAC,MAAoB,EAAE,CAAU;IACnE,MAAM,CAAC,IAAA,oBAAY,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const configSchema: z.ZodObject<{
|
|
3
|
+
TEST_USER_EMAIL: z.ZodString;
|
|
4
|
+
TEST_USER_PASSWORD: z.ZodString;
|
|
5
|
+
TENANT: z.ZodDefault<z.ZodString>;
|
|
6
|
+
API_URL: z.ZodString;
|
|
7
|
+
ORG_SLUG: z.ZodString;
|
|
8
|
+
STANDALONE_CONNECTOR_TYPE: z.ZodDefault<z.ZodString>;
|
|
9
|
+
AWS_REGION: z.ZodString;
|
|
10
|
+
DATALAKE_BUCKET: z.ZodString;
|
|
11
|
+
STREAM_BUCKET: z.ZodString;
|
|
12
|
+
TDP_CERTIFICATE_KEY: z.ZodString;
|
|
13
|
+
KMS_KEY_ID: z.ZodString;
|
|
14
|
+
OUTBOUND_COMMAND_QUEUE: z.ZodString;
|
|
15
|
+
TEST_RUN_ID: z.ZodDefault<z.ZodString>;
|
|
16
|
+
DATA_ACQUISITION_LOG_GROUP: z.ZodString;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
TEST_USER_EMAIL: string;
|
|
19
|
+
TEST_USER_PASSWORD: string;
|
|
20
|
+
TENANT: string;
|
|
21
|
+
API_URL: string;
|
|
22
|
+
ORG_SLUG: string;
|
|
23
|
+
STANDALONE_CONNECTOR_TYPE: string;
|
|
24
|
+
AWS_REGION: string;
|
|
25
|
+
DATALAKE_BUCKET: string;
|
|
26
|
+
STREAM_BUCKET: string;
|
|
27
|
+
TDP_CERTIFICATE_KEY: string;
|
|
28
|
+
KMS_KEY_ID: string;
|
|
29
|
+
OUTBOUND_COMMAND_QUEUE: string;
|
|
30
|
+
TEST_RUN_ID: string;
|
|
31
|
+
DATA_ACQUISITION_LOG_GROUP: string;
|
|
32
|
+
}, {
|
|
33
|
+
TEST_USER_EMAIL: string;
|
|
34
|
+
TEST_USER_PASSWORD: string;
|
|
35
|
+
API_URL: string;
|
|
36
|
+
ORG_SLUG: string;
|
|
37
|
+
AWS_REGION: string;
|
|
38
|
+
DATALAKE_BUCKET: string;
|
|
39
|
+
STREAM_BUCKET: string;
|
|
40
|
+
TDP_CERTIFICATE_KEY: string;
|
|
41
|
+
KMS_KEY_ID: string;
|
|
42
|
+
OUTBOUND_COMMAND_QUEUE: string;
|
|
43
|
+
DATA_ACQUISITION_LOG_GROUP: string;
|
|
44
|
+
TENANT?: string | undefined;
|
|
45
|
+
STANDALONE_CONNECTOR_TYPE?: string | undefined;
|
|
46
|
+
TEST_RUN_ID?: string | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
export type Config = z.infer<typeof configSchema>;
|
|
49
|
+
export declare const loadConfig: (env?: NodeJS.Dict<string>) => {
|
|
50
|
+
TEST_USER_EMAIL: string;
|
|
51
|
+
TEST_USER_PASSWORD: string;
|
|
52
|
+
TENANT: string;
|
|
53
|
+
API_URL: string;
|
|
54
|
+
ORG_SLUG: string;
|
|
55
|
+
STANDALONE_CONNECTOR_TYPE: string;
|
|
56
|
+
AWS_REGION: string;
|
|
57
|
+
DATALAKE_BUCKET: string;
|
|
58
|
+
STREAM_BUCKET: string;
|
|
59
|
+
TDP_CERTIFICATE_KEY: string;
|
|
60
|
+
KMS_KEY_ID: string;
|
|
61
|
+
OUTBOUND_COMMAND_QUEUE: string;
|
|
62
|
+
TEST_RUN_ID: string;
|
|
63
|
+
DATA_ACQUISITION_LOG_GROUP: string;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,UAAU,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;CAA0C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadConfig = exports.configSchema = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.configSchema = zod_1.z.object({
|
|
7
|
+
TEST_USER_EMAIL: zod_1.z.string().email(),
|
|
8
|
+
TEST_USER_PASSWORD: zod_1.z.string(),
|
|
9
|
+
TENANT: zod_1.z.string().default(''),
|
|
10
|
+
API_URL: zod_1.z.string(),
|
|
11
|
+
ORG_SLUG: zod_1.z.string(),
|
|
12
|
+
STANDALONE_CONNECTOR_TYPE: zod_1.z.string().default('common/workshop-demo:v1.6.1'),
|
|
13
|
+
AWS_REGION: zod_1.z.string(),
|
|
14
|
+
DATALAKE_BUCKET: zod_1.z.string(),
|
|
15
|
+
STREAM_BUCKET: zod_1.z.string(),
|
|
16
|
+
TDP_CERTIFICATE_KEY: zod_1.z.string(),
|
|
17
|
+
KMS_KEY_ID: zod_1.z.string(),
|
|
18
|
+
OUTBOUND_COMMAND_QUEUE: zod_1.z.string(),
|
|
19
|
+
TEST_RUN_ID: zod_1.z.string().default(() => (0, uuid_1.v4)()),
|
|
20
|
+
DATA_ACQUISITION_LOG_GROUP: zod_1.z.string(),
|
|
21
|
+
});
|
|
22
|
+
const loadConfig = (env = process.env) => exports.configSchema.parse(env);
|
|
23
|
+
exports.loadConfig = loadConfig;
|
|
24
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../api-tests/fixture/config.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,6BAAwB;AAEX,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACnC,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC9B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,yBAAyB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;IAC5E,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC/B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE;IAClC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,SAAM,GAAE,CAAC;IAC/C,0BAA0B,EAAE,OAAC,CAAC,MAAM,EAAE;CACvC,CAAC,CAAC;AAII,MAAM,UAAU,GAAG,CAAC,MAA2B,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAAjF,QAAA,UAAU,cAAuE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { AxiosInstance, AxiosResponse } from 'axios';
|
|
2
|
+
import { OnTestFinishedHandler } from 'vitest';
|
|
3
|
+
import * as apiTypes from './api.js';
|
|
4
|
+
import { Config } from './config';
|
|
5
|
+
type Schemas = apiTypes.components['schemas'];
|
|
6
|
+
export declare class ConnectorApi {
|
|
7
|
+
private http;
|
|
8
|
+
private readonly config;
|
|
9
|
+
constructor(http: AxiosInstance, config: Config);
|
|
10
|
+
create(input: Schemas['CreateConnectorRequest'], cleanupHandler?: (fn: OnTestFinishedHandler) => void): Promise<AxiosResponse<{
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
orgSlug: string;
|
|
14
|
+
description: string;
|
|
15
|
+
artifact: apiTypes.components["schemas"]["ArtifactDto"];
|
|
16
|
+
hostType: "cloud" | "hub" | "local" | "standalone";
|
|
17
|
+
hub?: apiTypes.components["schemas"]["HubDto"] | null;
|
|
18
|
+
metadata?: Record<string, never>;
|
|
19
|
+
tags?: string[];
|
|
20
|
+
commandQueue?: string;
|
|
21
|
+
clusterArn?: string;
|
|
22
|
+
taskDefinitionArn?: string;
|
|
23
|
+
serviceArn?: string;
|
|
24
|
+
health: string;
|
|
25
|
+
healthErrorCode?: string;
|
|
26
|
+
operatingStatus: string;
|
|
27
|
+
networkStatus: string;
|
|
28
|
+
config?: Record<string, never>;
|
|
29
|
+
lastSeenAt?: string;
|
|
30
|
+
updatedAt: string;
|
|
31
|
+
createdAt: string;
|
|
32
|
+
serviceDiscoveryName?: string;
|
|
33
|
+
}, any>>;
|
|
34
|
+
get(id: string): Promise<AxiosResponse<{
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
orgSlug: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
artifact: apiTypes.components["schemas"]["ArtifactDto"] | apiTypes.components["schemas"]["ArtifactDetailsDto"];
|
|
40
|
+
hostType: "cloud" | "hub" | "local" | "standalone";
|
|
41
|
+
hub?: apiTypes.components["schemas"]["HubDto"] | null;
|
|
42
|
+
metadata?: Record<string, never>;
|
|
43
|
+
tags?: string[];
|
|
44
|
+
labels?: apiTypes.components["schemas"]["LabelDto"][];
|
|
45
|
+
commandQueue?: string;
|
|
46
|
+
clusterArn?: string;
|
|
47
|
+
taskDefinitionArn?: string;
|
|
48
|
+
serviceArn?: string;
|
|
49
|
+
health: string;
|
|
50
|
+
healthErrorCode?: string;
|
|
51
|
+
operatingStatus: string;
|
|
52
|
+
networkStatus: string;
|
|
53
|
+
config?: Record<string, never>;
|
|
54
|
+
lastSeenAt?: string;
|
|
55
|
+
updatedAt: string;
|
|
56
|
+
createdAt: string;
|
|
57
|
+
serviceDiscoveryName?: string;
|
|
58
|
+
}, any>>;
|
|
59
|
+
rotateToken(id: string): Promise<AxiosResponse<{
|
|
60
|
+
token: string;
|
|
61
|
+
}, any>>;
|
|
62
|
+
setStatus(id: string, operatingStatus: Schemas['UpdateConnectorStatusRequest']['status']): Promise<AxiosResponse<{
|
|
63
|
+
status: "IDLE" | "RUNNING" | "DISABLED";
|
|
64
|
+
}, any>>;
|
|
65
|
+
waitForConnectorToBeOnline(id: string): Promise<AxiosResponse<{
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
orgSlug: string;
|
|
69
|
+
description?: string;
|
|
70
|
+
artifact: apiTypes.components["schemas"]["ArtifactDto"] | apiTypes.components["schemas"]["ArtifactDetailsDto"];
|
|
71
|
+
hostType: "cloud" | "hub" | "local" | "standalone";
|
|
72
|
+
hub?: apiTypes.components["schemas"]["HubDto"] | null;
|
|
73
|
+
metadata?: Record<string, never>;
|
|
74
|
+
tags?: string[];
|
|
75
|
+
labels?: apiTypes.components["schemas"]["LabelDto"][];
|
|
76
|
+
commandQueue?: string;
|
|
77
|
+
clusterArn?: string;
|
|
78
|
+
taskDefinitionArn?: string;
|
|
79
|
+
serviceArn?: string;
|
|
80
|
+
health: string;
|
|
81
|
+
healthErrorCode?: string;
|
|
82
|
+
operatingStatus: string;
|
|
83
|
+
networkStatus: string;
|
|
84
|
+
config?: Record<string, never>;
|
|
85
|
+
lastSeenAt?: string;
|
|
86
|
+
updatedAt: string;
|
|
87
|
+
createdAt: string;
|
|
88
|
+
serviceDiscoveryName?: string;
|
|
89
|
+
}, any>>;
|
|
90
|
+
waitForConnectorToBeOffline(id: string): Promise<AxiosResponse<{
|
|
91
|
+
id: string;
|
|
92
|
+
name: string;
|
|
93
|
+
orgSlug: string;
|
|
94
|
+
description?: string;
|
|
95
|
+
artifact: apiTypes.components["schemas"]["ArtifactDto"] | apiTypes.components["schemas"]["ArtifactDetailsDto"];
|
|
96
|
+
hostType: "cloud" | "hub" | "local" | "standalone";
|
|
97
|
+
hub?: apiTypes.components["schemas"]["HubDto"] | null;
|
|
98
|
+
metadata?: Record<string, never>;
|
|
99
|
+
tags?: string[];
|
|
100
|
+
labels?: apiTypes.components["schemas"]["LabelDto"][];
|
|
101
|
+
commandQueue?: string;
|
|
102
|
+
clusterArn?: string;
|
|
103
|
+
taskDefinitionArn?: string;
|
|
104
|
+
serviceArn?: string;
|
|
105
|
+
health: string;
|
|
106
|
+
healthErrorCode?: string;
|
|
107
|
+
operatingStatus: string;
|
|
108
|
+
networkStatus: string;
|
|
109
|
+
config?: Record<string, never>;
|
|
110
|
+
lastSeenAt?: string;
|
|
111
|
+
updatedAt: string;
|
|
112
|
+
createdAt: string;
|
|
113
|
+
serviceDiscoveryName?: string;
|
|
114
|
+
}, any>>;
|
|
115
|
+
setValue(key: string, value: any, connectorId: string): Promise<AxiosResponse<any, any>>;
|
|
116
|
+
private waitForConnectorNetworkStatus;
|
|
117
|
+
getFiles(id: string): Promise<AxiosResponse<{
|
|
118
|
+
files: apiTypes.components["schemas"]["ConnectorFileDto"][];
|
|
119
|
+
total: number;
|
|
120
|
+
}, any>>;
|
|
121
|
+
delete(id: string): Promise<AxiosResponse<any, any>>;
|
|
122
|
+
updateConfiguration(id: string, configuration: any): Promise<AxiosResponse<any, any>>;
|
|
123
|
+
private request;
|
|
124
|
+
}
|
|
125
|
+
export {};
|
|
126
|
+
//# sourceMappingURL=connector-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-api.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/connector-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAsB,aAAa,EAAgB,MAAM,OAAO,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,KAAK,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAE9C,qBAAa,YAAY;IAErB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADf,IAAI,EAAE,aAAa,EACV,MAAM,EAAE,MAAM;IAG3B,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,IAAI;;;;;kBA8H2+X,8BAAsB;;cAAkH,8BAAsB;;;;;;;;;;;;;;;;;IAvG9uY,GAAG,CAAC,EAAE,EAAE,MAAM;;;;;kBAuGska,8BAAsB,kBAAiB,8BAAsB;;cAAyH,8BAAsB;;;iBAAgG,8BAAsB;;;;;;;;;;;;;;;IAhGt5a,WAAW,CAAC,EAAE,EAAE,MAAM;eACG,MAAM;;IAMrC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC;;;IAQlF,0BAA0B,CAAC,EAAE,EAAE,MAAM;;;;;kBAiF+ia,8BAAsB,kBAAiB,8BAAsB;;cAAyH,8BAAsB;;;iBAAgG,8BAAsB;;;;;;;;;;;;;;;IA7Et5a,2BAA2B,CAAC,EAAE,EAAE,MAAM;;;;;kBA6E8ia,8BAAsB,kBAAiB,8BAAsB;;cAAyH,8BAAsB;;;iBAAgG,8BAAsB;;;;;;;;;;;;;;;IAzEt5a,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM;YAQ7C,6BAA6B;IAiBrC,QAAQ,CAAC,EAAE,EAAE,MAAM;eAgDskhB,8BAAsB;;;IAzC/mhB,MAAM,CAAC,EAAE,EAAE,MAAM;IAOjB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG;YAQ1C,OAAO;CAyBtB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ConnectorApi = void 0;
|
|
16
|
+
const async_retry_1 = __importDefault(require("async-retry"));
|
|
17
|
+
const axios_1 = require("axios");
|
|
18
|
+
class ConnectorApi {
|
|
19
|
+
constructor(http, config) {
|
|
20
|
+
this.http = http;
|
|
21
|
+
this.config = config;
|
|
22
|
+
}
|
|
23
|
+
create(input, cleanupHandler) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const response = yield this.request({
|
|
26
|
+
url: '/v1/data-acquisition/connectors',
|
|
27
|
+
data: input,
|
|
28
|
+
method: 'POST',
|
|
29
|
+
});
|
|
30
|
+
if (cleanupHandler) {
|
|
31
|
+
cleanupHandler(() => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
if (response.status != 201) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const deleteRes = yield this.delete(response.data.id);
|
|
36
|
+
if (deleteRes.status !== 204 && deleteRes.status !== 404) {
|
|
37
|
+
console.error(`Failed to delete connector ${response.data.id}`);
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
return response;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
get(id) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
return this.request({
|
|
47
|
+
url: `/v1/data-acquisition/connectors/${id}`,
|
|
48
|
+
method: 'GET',
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
rotateToken(id) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
return this.request({
|
|
55
|
+
url: `/v1/data-acquisition/connectors/${id}/token`,
|
|
56
|
+
method: 'PUT',
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
setStatus(id, operatingStatus) {
|
|
61
|
+
return this.request({
|
|
62
|
+
url: `/v1/data-acquisition/connectors/${id}/status`,
|
|
63
|
+
data: { status: operatingStatus },
|
|
64
|
+
method: 'PUT',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
waitForConnectorToBeOnline(id) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
return this.waitForConnectorNetworkStatus(id, 'Online');
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
waitForConnectorToBeOffline(id) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
return this.waitForConnectorNetworkStatus(id, 'Offline');
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
setValue(key, value, connectorId) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
return this.request({
|
|
80
|
+
url: `/v1/data-acquisition/connectors/${connectorId}/data`,
|
|
81
|
+
data: { values: [{ key, value }] },
|
|
82
|
+
method: 'PUT',
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
waitForConnectorNetworkStatus(id, targetStatus) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const retries = 15;
|
|
89
|
+
return (0, async_retry_1.default)((bail, attempt) => __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const res = yield this.get(id);
|
|
91
|
+
if (res.status !== 200 && attempt < retries) {
|
|
92
|
+
throw new Error(`Failed to get connector status: ${res.status}`);
|
|
93
|
+
}
|
|
94
|
+
else if (res.status === 200 && res.data.networkStatus !== targetStatus && attempt < retries) {
|
|
95
|
+
throw new Error(`Connector is not ${targetStatus} yet: ${res.data.networkStatus}`);
|
|
96
|
+
}
|
|
97
|
+
return res;
|
|
98
|
+
}), { minTimeout: 300, maxTimeout: 5000, retries });
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
getFiles(id) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
return this.request({
|
|
104
|
+
url: `/v1/data-acquisition/connectors/${id}/files`,
|
|
105
|
+
method: 'GET',
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
delete(id) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
return this.request({
|
|
112
|
+
url: `/v1/data-acquisition/connectors/${id}`,
|
|
113
|
+
method: 'DELETE',
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
updateConfiguration(id, configuration) {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
return this.request({
|
|
120
|
+
method: 'PUT',
|
|
121
|
+
url: `/v1/data-acquisition/connectors/${id}/config`,
|
|
122
|
+
data: configuration,
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
request(config) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
return (0, async_retry_1.default)((bail, attempt) => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
let response;
|
|
130
|
+
try {
|
|
131
|
+
response = yield this.http.request(config);
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
if ((0, axios_1.isAxiosError)(e)) {
|
|
135
|
+
response = e.response;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
bail(e);
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (response.status === 502 && attempt < 10) {
|
|
143
|
+
throw new Error('Bad gateway, retrying');
|
|
144
|
+
}
|
|
145
|
+
return response;
|
|
146
|
+
}), { retries: 10 });
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.ConnectorApi = ConnectorApi;
|
|
151
|
+
//# sourceMappingURL=connector-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-api.js","sourceRoot":"","sources":["../../../api-tests/fixture/connector-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CommandAction, CommandRequest, ConfigValidationResult, Connector, ConnectorOptions, LogEvent, ProcessingStatus, TDPClient, UploadFileRequest } from '../../../src/index.js';
|
|
2
|
+
import { Config } from '../config';
|
|
3
|
+
export interface UploadOptions {
|
|
4
|
+
labels?: UploadFileRequest['labels'];
|
|
5
|
+
strictMTLValidation?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class TestConnector extends Connector {
|
|
8
|
+
private readonly receivedCommands;
|
|
9
|
+
private readonly commandEventListener;
|
|
10
|
+
private _isShutdown;
|
|
11
|
+
private readonly logEvents;
|
|
12
|
+
private readonly logsClient;
|
|
13
|
+
private _updateCounts;
|
|
14
|
+
private readonly _configValidationAttempts;
|
|
15
|
+
get isShutdown(): boolean;
|
|
16
|
+
get updateCounts(): number;
|
|
17
|
+
get configValidationAttempts(): {
|
|
18
|
+
config: any;
|
|
19
|
+
result: ConfigValidationResult;
|
|
20
|
+
}[];
|
|
21
|
+
constructor(tdpClient: TDPClient, options?: ConnectorOptions);
|
|
22
|
+
getLogEvents(): LogEvent[];
|
|
23
|
+
flushReceivedCommands(): CommandRequest[];
|
|
24
|
+
getReceivedCommands(): CommandRequest[];
|
|
25
|
+
waitForCommand(action: CommandAction): Promise<CommandRequest | undefined>;
|
|
26
|
+
shutdown(): Promise<void>;
|
|
27
|
+
protected onConnectorUpdated(): void;
|
|
28
|
+
uploadFile(config: Pick<Config, 'TEST_RUN_ID'>, opts?: UploadOptions): Promise<{
|
|
29
|
+
fileId: string;
|
|
30
|
+
status: ProcessingStatus;
|
|
31
|
+
}>;
|
|
32
|
+
getCloudwatchLogEvents(minimumLogEventCount: number): Promise<{
|
|
33
|
+
method: string;
|
|
34
|
+
message: string;
|
|
35
|
+
}[]>;
|
|
36
|
+
protected validateConfig(config: any): Promise<ConfigValidationResult> | ConfigValidationResult;
|
|
37
|
+
protected onShutdown(): void;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=test-connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-connector.d.ts","sourceRoot":"","sources":["../../../../api-tests/fixture/connectors/test-connector.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,gBAAgB,EAEhB,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAoC;IACzE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IACjF,OAAO,CAAC,aAAa,CAAa;IAElC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyD;IAEnG,IAAI,UAAU,YAEb;IAED,IAAI,YAAY,WAEf;IAED,IAAI,wBAAwB;gBAV0B,GAAG;gBAAU,sBAAsB;QAYxF;gBAEW,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,gBAAqB;IAgBhE,YAAY;IAIZ,qBAAqB;IAKrB,mBAAmB;IAKb,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAcjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAI9B,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,GAAE,aAAkB;;;;IAqDxE,sBAAsB,CAAC,oBAAoB,EAAE,MAAM;gBA2Ba,MAAM;iBAAW,MAAM;;cAM1E,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;cA6BrF,UAAU,IAAI,IAAI;CAGtC"}
|