@tellescope/sdk 1.255.14 → 1.255.15

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.
@@ -0,0 +1,6 @@
1
+ import { Session } from "../../sdk";
2
+ export declare const formsort_header_auth_tests: ({ sdk, sdkNonAdmin }: {
3
+ sdk: Session;
4
+ sdkNonAdmin: Session;
5
+ }) => Promise<void>;
6
+ //# sourceMappingURL=formsort_header_auth.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formsort_header_auth.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/formsort_header_auth.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,eAAO,MAAM,0BAA0B;SAAwC,OAAO;iBAAe,OAAO;mBA6I3G,CAAA"}
@@ -0,0 +1,221 @@
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 __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.formsort_header_auth_tests = void 0;
43
+ require('source-map-support').install();
44
+ var axios_1 = __importDefault(require("axios"));
45
+ var sdk_1 = require("../../sdk");
46
+ var testing_1 = require("@tellescope/testing");
47
+ var setup_1 = require("../setup");
48
+ var host = process.env.API_URL || "http://localhost:8080";
49
+ // same seeded test API key used by formsort_tests (tests.ts)
50
+ var TEST_API_KEY = "9d4f9dff00f60df2690a16da2cb848f289b447614ad9bef850e54af09a1fbf7a";
51
+ // seeded second-tenant key (sdkOther in tests.ts) — valid, but for a different organization
52
+ var OTHER_TENANT_API_KEY = "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7";
53
+ var TEST_EMAIL = "formsort-header-auth@tellescope.com";
54
+ var formsort_header_auth_tests = function (_a) {
55
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
56
+ return __awaiter(void 0, void 0, void 0, function () {
57
+ var form, buildUrl, bodyFor, formResponseIds, headerAuthResult_1, pathAuthResult, bearerFallthroughResult, aliasResult, emptyValueResult, singleTokenResult, _i, formResponseIds_1, id, err_1, enduser, err_2, err_3;
58
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
59
+ return __generator(this, function (_q) {
60
+ switch (_q.label) {
61
+ case 0:
62
+ (0, testing_1.log_header)("FormSort Header Auth Tests");
63
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: "FormSort Header Auth" })];
64
+ case 1:
65
+ form = _q.sent();
66
+ buildUrl = function (route, pathSegment) {
67
+ var url = new URL("".concat(host, "/v1/webhooks/").concat(route, "/").concat(pathSegment));
68
+ url.searchParams.set('formId', form.id);
69
+ url.searchParams.set('returnJSON', 'true');
70
+ return url.toString();
71
+ };
72
+ bodyFor = function (responder_uuid) { return ({
73
+ answers: [{ key: 'email', value: TEST_EMAIL }],
74
+ responder_uuid: responder_uuid,
75
+ finalized: true,
76
+ }); };
77
+ formResponseIds = [];
78
+ _q.label = 2;
79
+ case 2:
80
+ _q.trys.push([2, , 13, 27]);
81
+ return [4 /*yield*/, axios_1.default.post(buildUrl('formsort', 'key-in-header'), bodyFor("fha-1"), { headers: { Authorization: "API_KEY ".concat(TEST_API_KEY) } })];
82
+ case 3:
83
+ headerAuthResult_1 = _q.sent();
84
+ (0, testing_1.assert)(headerAuthResult_1.status === 200 && !!((_b = headerAuthResult_1.data) === null || _b === void 0 ? void 0 : _b.formResponseId) && !!((_c = headerAuthResult_1.data) === null || _c === void 0 ? void 0 : _c.enduserId), "Header auth failed: ".concat(headerAuthResult_1.status, " ").concat(JSON.stringify(headerAuthResult_1.data)), "Valid API_KEY header authenticates");
85
+ if ((_d = headerAuthResult_1.data) === null || _d === void 0 ? void 0 : _d.formResponseId)
86
+ formResponseIds.push(headerAuthResult_1.data.formResponseId);
87
+ return [4 /*yield*/, (0, testing_1.async_test)("Form response created via header auth is retrievable", function () { return sdk.api.form_responses.getOne(headerAuthResult_1.data.formResponseId); }, { onResult: function (fr) { return fr.formId === form.id && fr.source === 'Formsort' && !!fr.submittedAt; } })
88
+ // 2. Invalid key in header rejected, even with a valid key in the path (header takes precedence)
89
+ ];
90
+ case 4:
91
+ _q.sent();
92
+ // 2. Invalid key in header rejected, even with a valid key in the path (header takes precedence)
93
+ return [4 /*yield*/, (0, testing_1.async_test)("Invalid API_KEY header rejected despite valid key in path", function () { return axios_1.default.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-2"), { headers: { Authorization: "API_KEY not-a-real-key" } }); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
94
+ // 3. Back-compat: valid key in path, no Authorization header
95
+ ];
96
+ case 5:
97
+ // 2. Invalid key in header rejected, even with a valid key in the path (header takes precedence)
98
+ _q.sent();
99
+ return [4 /*yield*/, axios_1.default.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-3"))];
100
+ case 6:
101
+ pathAuthResult = _q.sent();
102
+ (0, testing_1.assert)(pathAuthResult.status === 200 && !!((_e = pathAuthResult.data) === null || _e === void 0 ? void 0 : _e.formResponseId), "Path auth failed: ".concat(pathAuthResult.status, " ").concat(JSON.stringify(pathAuthResult.data)), "Path-segment API key still authenticates (no header)");
103
+ if ((_f = pathAuthResult.data) === null || _f === void 0 ? void 0 : _f.formResponseId)
104
+ formResponseIds.push(pathAuthResult.data.formResponseId);
105
+ return [4 /*yield*/, axios_1.default.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-4"), { headers: { Authorization: 'Bearer unrelated-token' } })];
106
+ case 7:
107
+ bearerFallthroughResult = _q.sent();
108
+ (0, testing_1.assert)(bearerFallthroughResult.status === 200 && !!((_g = bearerFallthroughResult.data) === null || _g === void 0 ? void 0 : _g.formResponseId), "Bearer fallthrough failed: ".concat(bearerFallthroughResult.status, " ").concat(JSON.stringify(bearerFallthroughResult.data)), "Non-API_KEY Authorization scheme falls through to path key");
109
+ if ((_h = bearerFallthroughResult.data) === null || _h === void 0 ? void 0 : _h.formResponseId)
110
+ formResponseIds.push(bearerFallthroughResult.data.formResponseId);
111
+ // 5. No valid key in header or path
112
+ return [4 /*yield*/, (0, testing_1.async_test)("No valid key anywhere rejected", function () { return axios_1.default.post(buildUrl('formsort', 'not-a-real-key'), bodyFor("fha-5")); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
113
+ // 6. Alias route accepts header auth too
114
+ ];
115
+ case 8:
116
+ // 5. No valid key in header or path
117
+ _q.sent();
118
+ return [4 /*yield*/, axios_1.default.post(buildUrl('form-ingestion', 'key-in-header'), bodyFor("fha-6"), { headers: { Authorization: "API_KEY ".concat(TEST_API_KEY) } })];
119
+ case 9:
120
+ aliasResult = _q.sent();
121
+ (0, testing_1.assert)(aliasResult.status === 200 && !!((_j = aliasResult.data) === null || _j === void 0 ? void 0 : _j.formResponseId), "form-ingestion header auth failed: ".concat(aliasResult.status, " ").concat(JSON.stringify(aliasResult.data)), "form-ingestion alias accepts API_KEY header");
122
+ if ((_k = aliasResult.data) === null || _k === void 0 ? void 0 : _k.formResponseId)
123
+ formResponseIds.push(aliasResult.data.formResponseId);
124
+ return [4 /*yield*/, axios_1.default.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-7"), { headers: { Authorization: 'API_KEY' } })];
125
+ case 10:
126
+ emptyValueResult = _q.sent();
127
+ (0, testing_1.assert)(emptyValueResult.status === 200 && !!((_l = emptyValueResult.data) === null || _l === void 0 ? void 0 : _l.formResponseId), "Empty-value header fallthrough failed: ".concat(emptyValueResult.status, " ").concat(JSON.stringify(emptyValueResult.data)), "API_KEY scheme without value falls through to path key");
128
+ if ((_m = emptyValueResult.data) === null || _m === void 0 ? void 0 : _m.formResponseId)
129
+ formResponseIds.push(emptyValueResult.data.formResponseId);
130
+ return [4 /*yield*/, axios_1.default.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-8"), { headers: { Authorization: 'some-opaque-token' } })];
131
+ case 11:
132
+ singleTokenResult = _q.sent();
133
+ (0, testing_1.assert)(singleTokenResult.status === 200 && !!((_o = singleTokenResult.data) === null || _o === void 0 ? void 0 : _o.formResponseId), "Single-token header fallthrough failed: ".concat(singleTokenResult.status, " ").concat(JSON.stringify(singleTokenResult.data)), "Schemeless Authorization header falls through to path key");
134
+ if ((_p = singleTokenResult.data) === null || _p === void 0 ? void 0 : _p.formResponseId)
135
+ formResponseIds.push(singleTokenResult.data.formResponseId);
136
+ // 9. When header and path both hold VALID keys, the header key's organization scopes the request:
137
+ // the formId belongs to the primary tenant, so an other-tenant header key must fail form lookup (400),
138
+ // proving the path key's org is not used
139
+ return [4 /*yield*/, (0, testing_1.async_test)("Valid other-tenant header key overrides valid path key (org scoping)", function () { return axios_1.default.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-9"), { headers: { Authorization: "API_KEY ".concat(OTHER_TENANT_API_KEY) } }); }, { shouldError: true, onError: function (e) { var _a, _b; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 400 && ((_b = e.response) === null || _b === void 0 ? void 0 : _b.data) === 'formId Invalid'; } })];
140
+ case 12:
141
+ // 9. When header and path both hold VALID keys, the header key's organization scopes the request:
142
+ // the formId belongs to the primary tenant, so an other-tenant header key must fail form lookup (400),
143
+ // proving the path key's org is not used
144
+ _q.sent();
145
+ return [3 /*break*/, 27];
146
+ case 13:
147
+ _i = 0, formResponseIds_1 = formResponseIds;
148
+ _q.label = 14;
149
+ case 14:
150
+ if (!(_i < formResponseIds_1.length)) return [3 /*break*/, 19];
151
+ id = formResponseIds_1[_i];
152
+ _q.label = 15;
153
+ case 15:
154
+ _q.trys.push([15, 17, , 18]);
155
+ return [4 /*yield*/, sdk.api.form_responses.deleteOne(id)];
156
+ case 16:
157
+ _q.sent();
158
+ return [3 /*break*/, 18];
159
+ case 17:
160
+ err_1 = _q.sent();
161
+ return [3 /*break*/, 18];
162
+ case 18:
163
+ _i++;
164
+ return [3 /*break*/, 14];
165
+ case 19:
166
+ _q.trys.push([19, 22, , 23]);
167
+ return [4 /*yield*/, sdk.api.endusers.getOne({ email: TEST_EMAIL })];
168
+ case 20:
169
+ enduser = _q.sent();
170
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
171
+ case 21:
172
+ _q.sent();
173
+ return [3 /*break*/, 23];
174
+ case 22:
175
+ err_2 = _q.sent();
176
+ return [3 /*break*/, 23];
177
+ case 23:
178
+ _q.trys.push([23, 25, , 26]);
179
+ return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
180
+ case 24:
181
+ _q.sent();
182
+ return [3 /*break*/, 26];
183
+ case 25:
184
+ err_3 = _q.sent();
185
+ return [3 /*break*/, 26];
186
+ case 26: return [7 /*endfinally*/];
187
+ case 27: return [2 /*return*/];
188
+ }
189
+ });
190
+ });
191
+ };
192
+ exports.formsort_header_auth_tests = formsort_header_auth_tests;
193
+ // Allow running this test file independently
194
+ if (require.main === module) {
195
+ console.log("\uD83C\uDF10 Using API URL: ".concat(host));
196
+ var sdk_2 = new sdk_1.Session({ host: host });
197
+ var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
198
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
199
+ return __generator(this, function (_a) {
200
+ switch (_a.label) {
201
+ case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
202
+ case 1:
203
+ _a.sent();
204
+ return [4 /*yield*/, (0, exports.formsort_header_auth_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
205
+ case 2:
206
+ _a.sent();
207
+ return [2 /*return*/];
208
+ }
209
+ });
210
+ }); };
211
+ runTests()
212
+ .then(function () {
213
+ console.log("✅ FormSort header auth tests completed successfully");
214
+ process.exit(0);
215
+ })
216
+ .catch(function (error) {
217
+ console.error("❌ FormSort header auth tests failed:", error);
218
+ process.exit(1);
219
+ });
220
+ }
221
+ //# sourceMappingURL=formsort_header_auth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formsort_header_auth.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/formsort_header_auth.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA40EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAw7CD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBAwb1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA60EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAw7CD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBAwb1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}