@tellescope/sdk 1.255.17 → 1.255.19

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.
Files changed (106) hide show
  1. package/lib/cjs/sdk.d.ts +7 -2
  2. package/lib/cjs/sdk.d.ts.map +1 -1
  3. package/lib/cjs/sdk.js +1 -0
  4. package/lib/cjs/sdk.js.map +1 -1
  5. package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.d.ts.map +1 -1
  6. package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.js +18 -8
  7. package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.js.map +1 -1
  8. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.d.ts.map +1 -1
  9. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.js +203 -72
  10. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.js.map +1 -1
  11. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.d.ts +6 -0
  12. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.d.ts.map +1 -0
  13. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.js +102 -0
  14. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.js.map +1 -0
  15. package/lib/cjs/tests/api_tests/scoped_api_keys.test.d.ts.map +1 -1
  16. package/lib/cjs/tests/api_tests/scoped_api_keys.test.js +215 -112
  17. package/lib/cjs/tests/api_tests/scoped_api_keys.test.js.map +1 -1
  18. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts.map +1 -1
  19. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js +121 -78
  20. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js.map +1 -1
  21. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.d.ts +6 -0
  22. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.d.ts.map +1 -0
  23. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js +773 -0
  24. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js.map +1 -0
  25. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +17 -0
  26. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -0
  27. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +215 -0
  28. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -0
  29. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts +6 -0
  30. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts.map +1 -0
  31. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js +1200 -0
  32. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js.map +1 -0
  33. package/lib/cjs/tests/api_tests/security/public_endpoint_auth_field_lock.test.d.ts +6 -0
  34. package/lib/cjs/tests/api_tests/security/public_endpoint_auth_field_lock.test.d.ts.map +1 -0
  35. package/lib/cjs/tests/api_tests/security/public_endpoint_auth_field_lock.test.js +2330 -0
  36. package/lib/cjs/tests/api_tests/security/public_endpoint_auth_field_lock.test.js.map +1 -0
  37. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts +6 -0
  38. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts.map +1 -0
  39. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.js +204 -0
  40. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.js.map +1 -0
  41. package/lib/cjs/tests/tests.d.ts.map +1 -1
  42. package/lib/cjs/tests/tests.js +211 -178
  43. package/lib/cjs/tests/tests.js.map +1 -1
  44. package/lib/esm/enduser.d.ts +1 -0
  45. package/lib/esm/enduser.d.ts.map +1 -1
  46. package/lib/esm/sdk.d.ts +10 -4
  47. package/lib/esm/sdk.d.ts.map +1 -1
  48. package/lib/esm/sdk.js +1 -0
  49. package/lib/esm/sdk.js.map +1 -1
  50. package/lib/esm/session.d.ts +1 -0
  51. package/lib/esm/session.d.ts.map +1 -1
  52. package/lib/esm/tests/api_tests/auto_merge_form_submission.test.d.ts.map +1 -1
  53. package/lib/esm/tests/api_tests/auto_merge_form_submission.test.js +18 -8
  54. package/lib/esm/tests/api_tests/auto_merge_form_submission.test.js.map +1 -1
  55. package/lib/esm/tests/api_tests/healthie_multi_integration.test.d.ts.map +1 -1
  56. package/lib/esm/tests/api_tests/healthie_multi_integration.test.js +205 -74
  57. package/lib/esm/tests/api_tests/healthie_multi_integration.test.js.map +1 -1
  58. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.d.ts +6 -0
  59. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.d.ts.map +1 -0
  60. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.js +98 -0
  61. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.js.map +1 -0
  62. package/lib/esm/tests/api_tests/scoped_api_keys.test.d.ts.map +1 -1
  63. package/lib/esm/tests/api_tests/scoped_api_keys.test.js +215 -112
  64. package/lib/esm/tests/api_tests/scoped_api_keys.test.js.map +1 -1
  65. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts.map +1 -1
  66. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js +121 -78
  67. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js.map +1 -1
  68. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.d.ts +6 -0
  69. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.d.ts.map +1 -0
  70. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js +766 -0
  71. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js.map +1 -0
  72. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +17 -0
  73. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -0
  74. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +211 -0
  75. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -0
  76. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts +6 -0
  77. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts.map +1 -0
  78. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js +1193 -0
  79. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js.map +1 -0
  80. package/lib/esm/tests/api_tests/security/public_endpoint_auth_field_lock.test.d.ts +6 -0
  81. package/lib/esm/tests/api_tests/security/public_endpoint_auth_field_lock.test.d.ts.map +1 -0
  82. package/lib/esm/tests/api_tests/security/public_endpoint_auth_field_lock.test.js +2323 -0
  83. package/lib/esm/tests/api_tests/security/public_endpoint_auth_field_lock.test.js.map +1 -0
  84. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts +6 -0
  85. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts.map +1 -0
  86. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.js +200 -0
  87. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.js.map +1 -0
  88. package/lib/esm/tests/tests.d.ts.map +1 -1
  89. package/lib/esm/tests/tests.js +211 -178
  90. package/lib/esm/tests/tests.js.map +1 -1
  91. package/lib/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +10 -10
  93. package/src/sdk.ts +4 -0
  94. package/src/tests/api_tests/auto_merge_form_submission.test.ts +13 -4
  95. package/src/tests/api_tests/healthie_multi_integration.test.ts +103 -5
  96. package/src/tests/api_tests/phone_calls_conference_hold.test.ts +62 -0
  97. package/src/tests/api_tests/scoped_api_keys.test.ts +87 -0
  98. package/src/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.ts +38 -4
  99. package/src/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.ts +506 -0
  100. package/src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts +125 -0
  101. package/src/tests/api_tests/security/formsort_webhook_auth_field_lock.test.ts +753 -0
  102. package/src/tests/api_tests/security/public_endpoint_auth_field_lock.test.ts +1707 -0
  103. package/src/tests/api_tests/tickets_bulk_assign_care_team.test.ts +132 -0
  104. package/src/tests/tests.ts +20 -1
  105. package/test_generated.pdf +0 -0
  106. package/.env +0 -13
@@ -51,16 +51,16 @@ var TEST_EMAIL = "scoped-api-keys@tellescope.com";
51
51
  var scoped_api_keys_tests = function (_a) {
52
52
  var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
53
53
  return __awaiter(void 0, void 0, void 0, function () {
54
- var form, buildUrl, bodyFor, keyIds, formResponseIds, throwawayUserId, throwawayRoleId, scoped_1, headerResult, pathResult, apiKeysRole, throwawayUser, _b, otherSdk_1, _c, nonAdminKey, unscoped_1, unscopedKeyValue_1, apiKeys, _i, keyIds_1, id, _d, formResponseIds_1, id, enduser, err_1;
55
- var _e;
56
- var _f, _g, _h, _j;
57
- return __generator(this, function (_k) {
58
- switch (_k.label) {
54
+ var form, buildUrl, bodyFor, keyIds, formResponseIds, fileIds, throwawayUserId, throwawayRoleId, scoped_1, headerResult, pathResult, scopedSession_1, uploadedFile_1, blockedFileEndpoints, _i, blockedFileEndpoints_1, _b, label, call, apiKeysRole, throwawayUser, _c, otherSdk_1, _d, nonAdminKey, unscoped_1, unscopedKeyValue_1, apiKeys, _e, keyIds_1, id, _f, formResponseIds_1, id, _g, fileIds_1, id, enduser, err_1;
55
+ var _h;
56
+ var _j, _k, _l, _m;
57
+ return __generator(this, function (_o) {
58
+ switch (_o.label) {
59
59
  case 0:
60
60
  (0, testing_1.log_header)("Scoped API Keys (form-ingestion)");
61
61
  return [4 /*yield*/, sdk.api.forms.createOne({ title: "Scoped API Key Test Form" })];
62
62
  case 1:
63
- form = _k.sent();
63
+ form = _o.sent();
64
64
  buildUrl = function (pathSegment) {
65
65
  var url = new URL("".concat(host, "/v1/webhooks/form-ingestion/").concat(pathSegment));
66
66
  url.searchParams.set('formId', form.id);
@@ -74,12 +74,13 @@ var scoped_api_keys_tests = function (_a) {
74
74
  }); };
75
75
  keyIds = [];
76
76
  formResponseIds = [];
77
- _k.label = 2;
77
+ fileIds = [];
78
+ _o.label = 2;
78
79
  case 2:
79
- _k.trys.push([2, , 26, 44]);
80
+ _o.trys.push([2, , 38, 60]);
80
81
  return [4 /*yield*/, sdk.api.api_keys.createOne({ scopes: [types_models_1.FORM_INGESTION_API_KEY_SCOPE] })];
81
82
  case 3:
82
- scoped_1 = _k.sent();
83
+ scoped_1 = _o.sent();
83
84
  keyIds.push(scoped_1.id);
84
85
  (0, testing_1.assert)(!!scoped_1.id && !!scoped_1.key, "scoped key create returned no id/key", "admin creates a form-ingestion-scoped key");
85
86
  // record reflects the scope for its creator (CREATOR_ONLY_ACCESS read)
@@ -90,7 +91,7 @@ var scoped_api_keys_tests = function (_a) {
90
91
  ];
91
92
  case 4:
92
93
  // record reflects the scope for its creator (CREATOR_ONLY_ACCESS read)
93
- _k.sent();
94
+ _o.sent();
94
95
  // =============================================
95
96
  // (b) Scoped key is rejected on all general /v1 auth
96
97
  // =============================================
@@ -101,91 +102,129 @@ var scoped_api_keys_tests = function (_a) {
101
102
  // =============================================
102
103
  // (b) Scoped key is rejected on all general /v1 auth
103
104
  // =============================================
104
- _k.sent();
105
+ _o.sent();
105
106
  return [4 /*yield*/, (0, testing_1.async_test)("scoped key rejected on GET /v1/endusers", function () { return axios_1.default.get("".concat(host, "/v1/endusers"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })];
106
107
  case 6:
107
- _k.sent();
108
+ _o.sent();
108
109
  return [4 /*yield*/, (0, testing_1.async_test)("scoped key rejected on cross-org targeting (x-tellescope-organization)", function () { return axios_1.default.get("".concat(host, "/v1/endusers"), {
109
110
  headers: {
110
111
  Authorization: "API_KEY ".concat(scoped_1.key),
111
112
  'x-tellescope-organization': sdk.userInfo.businessId,
112
113
  },
113
- }); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
114
+ }); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })];
115
+ case 7:
116
+ _o.sent();
117
+ return [4 /*yield*/, (0, testing_1.async_test)("scoped key cannot create API keys (escalation guard)", function () { return axios_1.default.post("".concat(host, "/v1/api-key"), {}, { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
114
118
  // =============================================
115
119
  // (c) Scoped key IS accepted by the form-ingestion webhook
116
120
  // =============================================
117
121
  ];
118
- case 7:
119
- _k.sent();
120
- return [4 /*yield*/, axios_1.default.post(buildUrl('key-in-header'), bodyFor("scoped-1"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } })];
121
122
  case 8:
122
- headerResult = _k.sent();
123
- (0, testing_1.assert)(headerResult.status === 200 && !!((_f = headerResult.data) === null || _f === void 0 ? void 0 : _f.formResponseId), "scoped key header auth failed: ".concat(headerResult.status, " ").concat(JSON.stringify(headerResult.data)), "scoped key authenticates the form-ingestion webhook via header");
124
- if ((_g = headerResult.data) === null || _g === void 0 ? void 0 : _g.formResponseId)
123
+ _o.sent();
124
+ return [4 /*yield*/, axios_1.default.post(buildUrl('key-in-header'), bodyFor("scoped-1"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } })];
125
+ case 9:
126
+ headerResult = _o.sent();
127
+ (0, testing_1.assert)(headerResult.status === 200 && !!((_j = headerResult.data) === null || _j === void 0 ? void 0 : _j.formResponseId), "scoped key header auth failed: ".concat(headerResult.status, " ").concat(JSON.stringify(headerResult.data)), "scoped key authenticates the form-ingestion webhook via header");
128
+ if ((_k = headerResult.data) === null || _k === void 0 ? void 0 : _k.formResponseId)
125
129
  formResponseIds.push(headerResult.data.formResponseId);
126
130
  return [4 /*yield*/, axios_1.default.post(buildUrl(scoped_1.key), bodyFor("scoped-2"))];
127
- case 9:
128
- pathResult = _k.sent();
129
- (0, testing_1.assert)(pathResult.status === 200 && !!((_h = pathResult.data) === null || _h === void 0 ? void 0 : _h.formResponseId), "scoped key path auth failed: ".concat(pathResult.status, " ").concat(JSON.stringify(pathResult.data)), "scoped key authenticates the form-ingestion webhook via path segment");
130
- if ((_j = pathResult.data) === null || _j === void 0 ? void 0 : _j.formResponseId)
131
+ case 10:
132
+ pathResult = _o.sent();
133
+ (0, testing_1.assert)(pathResult.status === 200 && !!((_l = pathResult.data) === null || _l === void 0 ? void 0 : _l.formResponseId), "scoped key path auth failed: ".concat(pathResult.status, " ").concat(JSON.stringify(pathResult.data)), "scoped key authenticates the form-ingestion webhook via path segment");
134
+ if ((_m = pathResult.data) === null || _m === void 0 ? void 0 : _m.formResponseId)
131
135
  formResponseIds.push(pathResult.data.formResponseId);
132
- return [4 /*yield*/, sdk.api.role_based_access_permissions.createOne({
133
- role: 'scoped-api-keys-test-role',
134
- permissions: { api_keys: { create: 'All', read: 'All', update: 'All', delete: 'All' } },
136
+ scopedSession_1 = new sdk_1.Session({ host: host, apiKey: scoped_1.key });
137
+ return [4 /*yield*/, scopedSession_1.api.files.prepare_file_upload({
138
+ name: 'scoped-intake-file.txt', size: 12, type: 'text/plain',
135
139
  })];
136
- case 10:
137
- apiKeysRole = _k.sent();
138
- throwawayRoleId = apiKeysRole.id;
139
- return [4 /*yield*/, sdk.api.users.getOne({ email: 'scoped.api.keys.user@tellescope.com' }).catch(function () { return null; })];
140
140
  case 11:
141
- _b = (_k.sent());
142
- if (_b) return [3 /*break*/, 13];
143
- return [4 /*yield*/, sdk.api.users.createOne({ email: 'scoped.api.keys.user@tellescope.com', notificationEmailsDisabled: true, verifiedEmail: true })];
141
+ uploadedFile_1 = (_o.sent()).file;
142
+ (0, testing_1.assert)(!!(uploadedFile_1 === null || uploadedFile_1 === void 0 ? void 0 : uploadedFile_1.id), "scoped key prepare_file_upload returned no file", "scoped key can call POST /prepare-file-upload");
143
+ if (uploadedFile_1 === null || uploadedFile_1 === void 0 ? void 0 : uploadedFile_1.id)
144
+ fileIds.push(uploadedFile_1.id);
145
+ return [4 /*yield*/, (0, testing_1.async_test)("scoped key can call POST /files/confirm-upload", function () { return scopedSession_1.api.files.confirm_file_upload({ id: uploadedFile_1.id }); }, { onResult: function () { return true; } })
146
+ // ...but is blocked from EVERY other endpoint in the files domain — proving the two allowed paths are the
147
+ // ONLY files access, and that the '/files/confirm-upload' allow-prefix does not open the '/files/*' namespace.
148
+ ];
144
149
  case 12:
145
- _b = (_k.sent());
146
- _k.label = 13;
150
+ _o.sent();
151
+ blockedFileEndpoints = [
152
+ ['GET /v1/files (readMany)', function () { return axios_1.default.get("".concat(host, "/v1/files"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }],
153
+ ['GET /v1/file/:id (read one)', function () { return axios_1.default.get("".concat(host, "/v1/file/000000000000000000000000"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }],
154
+ ['DELETE /v1/file/:id (destructive)', function () { return axios_1.default.delete("".concat(host, "/v1/file/000000000000000000000000"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }],
155
+ ['POST /v1/files/send-fax (/files/* sibling)', function () { return axios_1.default.post("".concat(host, "/v1/files/send-fax"), {}, { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }],
156
+ ['POST /v1/files/ocr (/files/* sibling)', function () { return axios_1.default.post("".concat(host, "/v1/files/ocr"), {}, { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }],
157
+ ['POST /v1/files/push (/files/* sibling)', function () { return axios_1.default.post("".concat(host, "/v1/files/push"), {}, { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }],
158
+ ];
159
+ _i = 0, blockedFileEndpoints_1 = blockedFileEndpoints;
160
+ _o.label = 13;
147
161
  case 13:
148
- throwawayUser = _b;
162
+ if (!(_i < blockedFileEndpoints_1.length)) return [3 /*break*/, 16];
163
+ _b = blockedFileEndpoints_1[_i], label = _b[0], call = _b[1];
164
+ return [4 /*yield*/, (0, testing_1.async_test)("scoped key blocked on ".concat(label), call, { shouldError: true, onError: function (e) { var _a, _b; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.status) === 403; } })];
165
+ case 14:
166
+ _o.sent();
167
+ _o.label = 15;
168
+ case 15:
169
+ _i++;
170
+ return [3 /*break*/, 13];
171
+ case 16: return [4 /*yield*/, sdk.api.role_based_access_permissions.createOne({
172
+ role: 'scoped-api-keys-test-role',
173
+ permissions: { api_keys: { create: 'All', read: 'All', update: 'All', delete: 'All' } },
174
+ })];
175
+ case 17:
176
+ apiKeysRole = _o.sent();
177
+ throwawayRoleId = apiKeysRole.id;
178
+ return [4 /*yield*/, sdk.api.users.getOne({ email: 'scoped.api.keys.user@tellescope.com' }).catch(function () { return null; })];
179
+ case 18:
180
+ _c = (_o.sent());
181
+ if (_c) return [3 /*break*/, 20];
182
+ return [4 /*yield*/, sdk.api.users.createOne({ email: 'scoped.api.keys.user@tellescope.com', notificationEmailsDisabled: true, verifiedEmail: true })];
183
+ case 19:
184
+ _c = (_o.sent());
185
+ _o.label = 20;
186
+ case 20:
187
+ throwawayUser = _c;
149
188
  throwawayUserId = throwawayUser.id;
150
189
  return [4 /*yield*/, sdk.api.users.updateOne(throwawayUser.id, { roles: [apiKeysRole.role] }, { replaceObjectFields: true })];
151
- case 14:
152
- _k.sent();
190
+ case 21:
191
+ _o.sent();
153
192
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 2000)]; // wait for the role change to propagate before authenticating
154
- case 15:
155
- _k.sent(); // wait for the role change to propagate before authenticating
156
- _c = sdk_1.Session.bind;
157
- _e = {
193
+ case 22:
194
+ _o.sent(); // wait for the role change to propagate before authenticating
195
+ _d = sdk_1.Session.bind;
196
+ _h = {
158
197
  host: host
159
198
  };
160
199
  return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: throwawayUser.id })];
161
- case 16:
162
- otherSdk_1 = new (_c.apply(sdk_1.Session, [void 0, (_e.authToken = (_k.sent()).authToken,
163
- _e)]))();
200
+ case 23:
201
+ otherSdk_1 = new (_d.apply(sdk_1.Session, [void 0, (_h.authToken = (_o.sent()).authToken,
202
+ _h)]))();
164
203
  return [4 /*yield*/, (0, testing_1.async_test)("non-admin cannot create a scoped key (401)", function () { return otherSdk_1.api.api_keys.createOne({ scopes: [types_models_1.FORM_INGESTION_API_KEY_SCOPE] }); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.statusCode) === 401 || /admin/i.test((e === null || e === void 0 ? void 0 : e.message) || ''); } })
165
204
  // ...but CAN still create an unscoped key; an empty scopes list is rejected by validation (fail closed)
166
205
  ];
167
- case 17:
168
- _k.sent();
206
+ case 24:
207
+ _o.sent();
169
208
  return [4 /*yield*/, otherSdk_1.api.api_keys.createOne({})];
170
- case 18:
171
- nonAdminKey = _k.sent();
209
+ case 25:
210
+ nonAdminKey = _o.sent();
172
211
  return [4 /*yield*/, (0, testing_1.async_test)("empty scopes list rejected by validation", function () { return otherSdk_1.api.api_keys.createOne({ scopes: [] }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.statusCode) === 400 || /empty|not valid|invalid/i.test((e === null || e === void 0 ? void 0 : e.message) || ''); } })
173
212
  // creator-only cleanup for the throwaway user's key before the user is deleted
174
213
  ];
175
- case 19:
176
- _k.sent();
214
+ case 26:
215
+ _o.sent();
177
216
  // creator-only cleanup for the throwaway user's key before the user is deleted
178
217
  return [4 /*yield*/, otherSdk_1.api.api_keys.deleteOne(nonAdminKey.id).catch(function () { })
179
218
  // =============================================
180
219
  // (e) Unscoped keys are unchanged (no regression)
181
220
  // =============================================
182
221
  ];
183
- case 20:
222
+ case 27:
184
223
  // creator-only cleanup for the throwaway user's key before the user is deleted
185
- _k.sent();
224
+ _o.sent();
186
225
  return [4 /*yield*/, sdk.api.api_keys.createOne({})];
187
- case 21:
188
- unscoped_1 = _k.sent();
226
+ case 28:
227
+ unscoped_1 = _o.sent();
189
228
  unscopedKeyValue_1 = unscoped_1.key;
190
229
  keyIds.push(unscoped_1.id);
191
230
  return [4 /*yield*/, (0, testing_1.async_test)("unscoped key still authenticates general /v1", function () { return new sdk_1.Session({ host: host, apiKey: unscopedKeyValue_1 }).test_authenticated(); }, { onResult: function (r) { return !!r; } })
@@ -193,8 +232,8 @@ var scoped_api_keys_tests = function (_a) {
193
232
  // webhook's hex lookup never matches — only legacy plaintext keys and hex-stored scoped keys work there.
194
233
  // (Legacy-key webhook auth is covered by formsort_header_auth.test.ts.)
195
234
  ];
196
- case 22:
197
- _k.sent();
235
+ case 29:
236
+ _o.sent();
198
237
  // Frozen pre-existing behavior: unscoped /v1-created keys store a utf8-encoded hashedKey, which the
199
238
  // webhook's hex lookup never matches — only legacy plaintext keys and hex-stored scoped keys work there.
200
239
  // (Legacy-key webhook auth is covered by formsort_header_auth.test.ts.)
@@ -203,81 +242,145 @@ var scoped_api_keys_tests = function (_a) {
203
242
  // (f) Admin org-wide list includes scopes (and still never leaks secrets)
204
243
  // =============================================
205
244
  ];
206
- case 23:
245
+ case 30:
207
246
  // Frozen pre-existing behavior: unscoped /v1-created keys store a utf8-encoded hashedKey, which the
208
247
  // webhook's hex lookup never matches — only legacy plaintext keys and hex-stored scoped keys work there.
209
248
  // (Legacy-key webhook auth is covered by formsort_header_auth.test.ts.)
210
- _k.sent();
249
+ _o.sent();
211
250
  return [4 /*yield*/, sdk.api.api_keys.get_organization_api_keys()];
212
- case 24:
213
- apiKeys = (_k.sent()).apiKeys;
251
+ case 31:
252
+ apiKeys = (_o.sent()).apiKeys;
214
253
  (0, testing_1.assert)(!!apiKeys.find(function (k) { return k.id === scoped_1.id && JSON.stringify(k.scopes) === JSON.stringify([types_models_1.FORM_INGESTION_API_KEY_SCOPE]); }), "org list did not report scopes on the scoped key", "get_organization_api_keys reports scopes on scoped keys");
215
254
  (0, testing_1.assert)(!!apiKeys.find(function (k) { return k.id === unscoped_1.id && k.scopes === undefined; }), "org list reported scopes on an unscoped key", "get_organization_api_keys omits scopes on unscoped keys");
216
255
  (0, testing_1.assert)(apiKeys.every(function (k) { return k.key === undefined && k.hashedKey === undefined; }), "org list leaked key material", "get_organization_api_keys still never returns key/hashedKey");
217
256
  // =============================================
218
- // Validation: unknown scope values are rejected
257
+ // (g) Legacy non-/v1 funnel (app.js requireLoginAndAccess → is_logged_in_API_key with NO requestPath).
258
+ // Proves scoped keys fail closed on every non-/v1 caller (also stands in for the Medplum webhook path),
259
+ // and that unscoped keys still authenticate the legacy funnel after this work.
260
+ // NOTE: the legacy middleware reads the key from ?apiKey= / body only (never the Authorization header).
219
261
  // =============================================
220
- return [4 /*yield*/, (0, testing_1.async_test)("unknown scope value rejected by validation", function () { return sdk.api.api_keys.createOne({ scopes: ['not-a-real-scope'] }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.statusCode) === 400 || /must match|not valid|invalid/i.test((e === null || e === void 0 ? void 0 : e.message) || ''); } })];
221
- case 25:
262
+ return [4 /*yield*/, (0, testing_1.async_test)("unscoped key authenticates a legacy non-/v1 route", function () { return axios_1.default.get("".concat(host, "/API-keys-for-user?apiKey=").concat(encodeURIComponent(unscopedKeyValue_1))); }, { onResult: function (r) { return r.status === 200; } })];
263
+ case 32:
222
264
  // =============================================
223
- // Validation: unknown scope values are rejected
265
+ // (g) Legacy non-/v1 funnel (app.js requireLoginAndAccess → is_logged_in_API_key with NO requestPath).
266
+ // Proves scoped keys fail closed on every non-/v1 caller (also stands in for the Medplum webhook path),
267
+ // and that unscoped keys still authenticate the legacy funnel after this work.
268
+ // NOTE: the legacy middleware reads the key from ?apiKey= / body only (never the Authorization header).
224
269
  // =============================================
225
- _k.sent();
226
- return [3 /*break*/, 44];
227
- case 26:
228
- _i = 0, keyIds_1 = keyIds;
229
- _k.label = 27;
230
- case 27:
231
- if (!(_i < keyIds_1.length)) return [3 /*break*/, 30];
232
- id = keyIds_1[_i];
233
- return [4 /*yield*/, sdk.api.api_keys.deleteOne(id).catch(function () { })];
234
- case 28:
235
- _k.sent();
236
- _k.label = 29;
237
- case 29:
238
- _i++;
239
- return [3 /*break*/, 27];
240
- case 30:
241
- _d = 0, formResponseIds_1 = formResponseIds;
242
- _k.label = 31;
243
- case 31:
244
- if (!(_d < formResponseIds_1.length)) return [3 /*break*/, 34];
245
- id = formResponseIds_1[_d];
246
- return [4 /*yield*/, sdk.api.form_responses.deleteOne(id).catch(function () { })];
247
- case 32:
248
- _k.sent();
249
- _k.label = 33;
270
+ _o.sent();
271
+ return [4 /*yield*/, (0, testing_1.async_test)("scoped key rejected on a legacy non-/v1 route (fail closed, no requestPath)", function () { return axios_1.default.get("".concat(host, "/API-keys-for-user?apiKey=").concat(encodeURIComponent(scoped_1.key))); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
272
+ // =============================================
273
+ // (h) Data-egress adjacency: the scope's allowed paths must NOT leak to the file DOWNLOAD endpoint.
274
+ // =============================================
275
+ ];
250
276
  case 33:
251
- _d++;
252
- return [3 /*break*/, 31];
277
+ _o.sent();
278
+ // =============================================
279
+ // (h) Data-egress adjacency: the scope's allowed paths must NOT leak to the file DOWNLOAD endpoint.
280
+ // =============================================
281
+ return [4 /*yield*/, (0, testing_1.async_test)("scoped key cannot call file_download_URL (no PHI egress)", function () { return axios_1.default.get("".concat(host, "/v1/file-download-URL?secureName=nonexistent"), { headers: { Authorization: "API_KEY ".concat(scoped_1.key) } }); }, { shouldError: true, onError: function (e) { var _a, _b; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.status) === 403; } })
282
+ // =============================================
283
+ // (i) Transport independence: the scope gate applies whether the key is in the header or the ?apiKey= query.
284
+ // =============================================
285
+ ];
253
286
  case 34:
254
- _k.trys.push([34, 37, , 38]);
255
- return [4 /*yield*/, sdk.api.endusers.getOne({ email: TEST_EMAIL })];
287
+ // =============================================
288
+ // (h) Data-egress adjacency: the scope's allowed paths must NOT leak to the file DOWNLOAD endpoint.
289
+ // =============================================
290
+ _o.sent();
291
+ // =============================================
292
+ // (i) Transport independence: the scope gate applies whether the key is in the header or the ?apiKey= query.
293
+ // =============================================
294
+ return [4 /*yield*/, (0, testing_1.async_test)("scoped key via ?apiKey= query param still rejected on a disallowed /v1 endpoint", function () { return axios_1.default.get("".concat(host, "/v1/endusers?apiKey=").concat(encodeURIComponent(scoped_1.key))); }, { shouldError: true, onError: function (e) { var _a, _b; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.status) === 403; } })];
256
295
  case 35:
257
- enduser = _k.sent();
258
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
296
+ // =============================================
297
+ // (i) Transport independence: the scope gate applies whether the key is in the header or the ?apiKey= query.
298
+ // =============================================
299
+ _o.sent();
300
+ return [4 /*yield*/, (0, testing_1.async_test)("unscoped key via ?apiKey= query param still authenticates /v1 (regression)", function () { return axios_1.default.get("".concat(host, "/v1/test-authenticated?apiKey=").concat(encodeURIComponent(unscopedKeyValue_1))); }, { onResult: function (r) { return r.status === 200; } })
301
+ // =============================================
302
+ // Validation: unknown scope values are rejected
303
+ // =============================================
304
+ ];
259
305
  case 36:
260
- _k.sent();
261
- return [3 /*break*/, 38];
306
+ _o.sent();
307
+ // =============================================
308
+ // Validation: unknown scope values are rejected
309
+ // =============================================
310
+ return [4 /*yield*/, (0, testing_1.async_test)("unknown scope value rejected by validation", function () { return sdk.api.api_keys.createOne({ scopes: ['not-a-real-scope'] }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.statusCode) === 400 || /must match|not valid|invalid/i.test((e === null || e === void 0 ? void 0 : e.message) || ''); } })];
262
311
  case 37:
263
- err_1 = _k.sent();
264
- return [3 /*break*/, 38];
265
- case 38: return [4 /*yield*/, sdk.api.forms.deleteOne(form.id).catch(function () { })];
312
+ // =============================================
313
+ // Validation: unknown scope values are rejected
314
+ // =============================================
315
+ _o.sent();
316
+ return [3 /*break*/, 60];
317
+ case 38:
318
+ _e = 0, keyIds_1 = keyIds;
319
+ _o.label = 39;
266
320
  case 39:
267
- _k.sent();
268
- if (!throwawayUserId) return [3 /*break*/, 41];
269
- return [4 /*yield*/, sdk.api.users.deleteOne(throwawayUserId).catch(function () { })];
321
+ if (!(_e < keyIds_1.length)) return [3 /*break*/, 42];
322
+ id = keyIds_1[_e];
323
+ return [4 /*yield*/, sdk.api.api_keys.deleteOne(id).catch(function () { })];
270
324
  case 40:
271
- _k.sent();
272
- _k.label = 41;
325
+ _o.sent();
326
+ _o.label = 41;
273
327
  case 41:
274
- if (!throwawayRoleId) return [3 /*break*/, 43];
275
- return [4 /*yield*/, sdk.api.role_based_access_permissions.deleteOne(throwawayRoleId).catch(function () { })];
328
+ _e++;
329
+ return [3 /*break*/, 39];
276
330
  case 42:
277
- _k.sent();
278
- _k.label = 43;
279
- case 43: return [7 /*endfinally*/];
280
- case 44: return [2 /*return*/];
331
+ _f = 0, formResponseIds_1 = formResponseIds;
332
+ _o.label = 43;
333
+ case 43:
334
+ if (!(_f < formResponseIds_1.length)) return [3 /*break*/, 46];
335
+ id = formResponseIds_1[_f];
336
+ return [4 /*yield*/, sdk.api.form_responses.deleteOne(id).catch(function () { })];
337
+ case 44:
338
+ _o.sent();
339
+ _o.label = 45;
340
+ case 45:
341
+ _f++;
342
+ return [3 /*break*/, 43];
343
+ case 46:
344
+ _g = 0, fileIds_1 = fileIds;
345
+ _o.label = 47;
346
+ case 47:
347
+ if (!(_g < fileIds_1.length)) return [3 /*break*/, 50];
348
+ id = fileIds_1[_g];
349
+ return [4 /*yield*/, sdk.api.files.deleteOne(id).catch(function () { })];
350
+ case 48:
351
+ _o.sent();
352
+ _o.label = 49;
353
+ case 49:
354
+ _g++;
355
+ return [3 /*break*/, 47];
356
+ case 50:
357
+ _o.trys.push([50, 53, , 54]);
358
+ return [4 /*yield*/, sdk.api.endusers.getOne({ email: TEST_EMAIL })];
359
+ case 51:
360
+ enduser = _o.sent();
361
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
362
+ case 52:
363
+ _o.sent();
364
+ return [3 /*break*/, 54];
365
+ case 53:
366
+ err_1 = _o.sent();
367
+ return [3 /*break*/, 54];
368
+ case 54: return [4 /*yield*/, sdk.api.forms.deleteOne(form.id).catch(function () { })];
369
+ case 55:
370
+ _o.sent();
371
+ if (!throwawayUserId) return [3 /*break*/, 57];
372
+ return [4 /*yield*/, sdk.api.users.deleteOne(throwawayUserId).catch(function () { })];
373
+ case 56:
374
+ _o.sent();
375
+ _o.label = 57;
376
+ case 57:
377
+ if (!throwawayRoleId) return [3 /*break*/, 59];
378
+ return [4 /*yield*/, sdk.api.role_based_access_permissions.deleteOne(throwawayRoleId).catch(function () { })];
379
+ case 58:
380
+ _o.sent();
381
+ _o.label = 59;
382
+ case 59: return [7 /*endfinally*/];
383
+ case 60: return [2 /*return*/];
281
384
  }
282
385
  });
283
386
  });
@@ -1 +1 @@
1
- {"version":3,"file":"scoped_api_keys.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/scoped_api_keys.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoped_api_keys.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/scoped_api_keys.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"F-0106-F-0110-enduser-write-restrictions.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AA+DtD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gCAAgC;SAA2B,OAAO;iBAAe,OAAO;mBA6GpG,CAAA"}
1
+ {"version":3,"file":"F-0106-F-0110-enduser-write-restrictions.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AAsEtD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gCAAgC;SAA2B,OAAO;iBAAe,OAAO;mBAwIpG,CAAA"}