@tellescope/sdk 1.256.14 → 1.256.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.
- package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.js +1 -1
- package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts +5 -0
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js +388 -0
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/integrations_redacted.test.js +3 -3
- package/lib/cjs/tests/api_tests/integrations_redacted.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/organization_signup.test.d.ts +1 -1
- package/lib/cjs/tests/api_tests/organization_signup.test.js +1 -1
- package/lib/cjs/tests/api_tests/purchase_made_trigger.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/purchase_made_trigger.test.js +103 -162
- package/lib/cjs/tests/api_tests/purchase_made_trigger.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts +33 -0
- package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.js +249 -0
- package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +42 -0
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +281 -0
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts +38 -0
- package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js +390 -0
- package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.js +1003 -0
- package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts +42 -0
- package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js +323 -0
- package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +29 -0
- package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js +335 -0
- package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +32 -0
- package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +237 -0
- package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +28 -0
- package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js +349 -0
- package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +30 -0
- package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +314 -0
- package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts +21 -0
- package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js +362 -0
- package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts +21 -0
- package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js +366 -0
- package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts +32 -0
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js +248 -0
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +19 -0
- package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js +138 -0
- package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +24 -0
- package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +201 -0
- package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.d.ts +29 -0
- package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.js +278 -0
- package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts +17 -0
- package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js +155 -0
- package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/prototype-pollution.test.d.ts +2 -0
- package/lib/cjs/tests/api_tests/security/prototype-pollution.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/prototype-pollution.test.js +88 -0
- package/lib/cjs/tests/api_tests/security/prototype-pollution.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +34 -0
- package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +230 -0
- package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts +2 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +242 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.d.ts +2 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.js +148 -0
- package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +45 -0
- package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js +388 -0
- package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts +38 -0
- package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js +222 -0
- package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +354 -0
- package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts +28 -0
- package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.js +442 -0
- package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts +19 -0
- package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js +156 -0
- package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/webhook_error_handling.test.js +2 -2
- package/lib/cjs/tests/api_tests/webhook_error_handling.test.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +58 -46
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/cjs/tests/unit_tests/openapi_spec_freshness.test.d.ts +1 -1
- package/lib/cjs/tests/unit_tests/openapi_spec_freshness.test.js +1 -1
- package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/lib/esm/enduser.d.ts +0 -1
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +2 -3
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/session.d.ts +0 -1
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/auto_merge_form_submission.test.js +1 -1
- package/lib/esm/tests/api_tests/auto_merge_form_submission.test.js.map +1 -1
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts +5 -0
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js +383 -0
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -0
- package/lib/esm/tests/api_tests/integrations_redacted.test.js +3 -3
- package/lib/esm/tests/api_tests/integrations_redacted.test.js.map +1 -1
- package/lib/esm/tests/api_tests/organization_signup.test.d.ts +1 -1
- package/lib/esm/tests/api_tests/organization_signup.test.js +1 -1
- package/lib/esm/tests/api_tests/purchase_made_trigger.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/purchase_made_trigger.test.js +104 -163
- package/lib/esm/tests/api_tests/purchase_made_trigger.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts +33 -0
- package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.js +244 -0
- package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +42 -0
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +276 -0
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts +38 -0
- package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js +386 -0
- package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.js +996 -0
- package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts +42 -0
- package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js +316 -0
- package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +29 -0
- package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js +331 -0
- package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +32 -0
- package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +233 -0
- package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +28 -0
- package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js +345 -0
- package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +30 -0
- package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +310 -0
- package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts +21 -0
- package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js +358 -0
- package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts +21 -0
- package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js +362 -0
- package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts +32 -0
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js +243 -0
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +19 -0
- package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js +134 -0
- package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +24 -0
- package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +194 -0
- package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.d.ts +29 -0
- package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.js +271 -0
- package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts +17 -0
- package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js +151 -0
- package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/prototype-pollution.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/security/prototype-pollution.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/prototype-pollution.test.js +84 -0
- package/lib/esm/tests/api_tests/security/prototype-pollution.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +34 -0
- package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +223 -0
- package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +238 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html.test.js +144 -0
- package/lib/esm/tests/api_tests/security/sanitize-user-html.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +45 -0
- package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js +381 -0
- package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts +38 -0
- package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js +218 -0
- package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +350 -0
- package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts +28 -0
- package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.js +435 -0
- package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts +19 -0
- package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/webhook-timeout.test.js +149 -0
- package/lib/esm/tests/api_tests/security/webhook-timeout.test.js.map +1 -0
- package/lib/esm/tests/api_tests/webhook_error_handling.test.js +2 -2
- package/lib/esm/tests/api_tests/webhook_error_handling.test.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +36 -24
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/esm/tests/unit_tests/openapi_spec_freshness.test.d.ts +1 -1
- package/lib/esm/tests/unit_tests/openapi_spec_freshness.test.js +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/api_tests/auto_merge_form_submission.test.ts +1 -1
- package/src/tests/api_tests/enduser_observations_auto_review.test.ts +358 -0
- package/src/tests/api_tests/integrations_redacted.test.ts +1 -1
- package/src/tests/api_tests/organization_signup.test.ts +2 -2
- package/src/tests/api_tests/purchase_made_trigger.test.ts +29 -41
- package/src/tests/api_tests/security/{F-0196-add-to-journey-foreign-enduserid.test.ts → add-to-journey-foreign-enduserid.test.ts} +6 -7
- package/src/tests/api_tests/security/{F-0005-ai-conversations-rbac.test.ts → ai-conversations-rbac.test.ts} +14 -14
- package/src/tests/api_tests/security/{F-0166-allowed-paths-wildcard-bypass.test.ts → allowed-paths-confinement.test.ts} +11 -11
- package/src/tests/api_tests/security/{F-0192-automated-actions-process-gate.test.ts → automated-actions-process-gate.test.ts} +6 -7
- package/src/tests/api_tests/security/{F-0179-booking-info-idor-token-mint.test.ts → booking-info-idor-token-mint.test.ts} +5 -6
- package/src/tests/api_tests/security/{F-0053-cascade-role-rename-cross-tenant.test.ts → cascade-role-rename-cross-tenant.test.ts} +10 -10
- package/src/tests/api_tests/security/{F-0001-data-sync-redaction-bypass.test.ts → data-sync-redaction-bypass.test.ts} +9 -9
- package/src/tests/api_tests/security/{F-0006-develop-health-benefit-verification-rbac.test.ts → develop-health-benefit-verification-rbac.test.ts} +7 -8
- package/src/tests/api_tests/security/{F-0116-F-0119-enduser-cross-create.test.ts → enduser-cross-create.test.ts} +25 -25
- package/src/tests/api_tests/security/{F-0106-F-0110-enduser-write-restrictions.test.ts → enduser-write-restrictions.test.ts} +12 -14
- package/src/tests/api_tests/security/form-logic-js-execution.test.ts +183 -0
- package/src/tests/api_tests/security/{F-0145-globalunique-leak.test.ts → globalunique-conflict-redaction.test.ts} +5 -6
- package/src/tests/api_tests/security/{F-0008-handle-incoming-communication-cross-tenant.test.ts → handle-incoming-communication-cross-tenant.test.ts} +8 -8
- package/src/tests/api_tests/security/{F-0007-invite-user-enumeration.test.ts → invite-user-enumeration.test.ts} +8 -8
- package/src/tests/api_tests/security/{F-0151-load-inbox-redaction.test.ts → load-inbox-redaction.test.ts} +5 -6
- package/src/tests/api_tests/security/{F-0016-prototype-pollution.test.ts → prototype-pollution.test.ts} +4 -4
- package/src/tests/api_tests/security/{F-0025-proxy-image-unauth-ssrf.test.ts → proxy-image-unauth-ssrf.test.ts} +11 -12
- package/src/tests/api_tests/security/{F-0013-sanitize-user-html-with-iframes.test.ts → sanitize-user-html-with-iframes.test.ts} +5 -5
- package/src/tests/api_tests/security/{F-0013-sanitize-user-html.test.ts → sanitize-user-html.test.ts} +4 -4
- package/src/tests/api_tests/security/{F-0191-schema-adminonly-enforcement.test.ts → schema-adminonly-enforcement.test.ts} +6 -7
- package/src/tests/api_tests/security/{F-0076-self-admin-role-assignment.test.ts → self-admin-role-assignment.test.ts} +13 -13
- package/src/tests/api_tests/security/{F-0185-startlinktoken-enduser-staff-escalation.test.ts → startlinktoken-enduser-staff-escalation.test.ts} +6 -6
- package/src/tests/api_tests/security/{F-0015-webhook-outbound-ssrf.test.ts → webhook-outbound-ssrf.test.ts} +13 -14
- package/src/tests/api_tests/security/{F-0155-webhook-timeout.test.ts → webhook-timeout.test.ts} +6 -7
- package/src/tests/api_tests/webhook_error_handling.test.ts +1 -1
- package/src/tests/tests.ts +41 -24
- package/src/tests/unit_tests/openapi_spec_freshness.test.ts +1 -1
- package/test_generated.pdf +0 -0
- package/src/tests/api_tests/security/readonly-enduser-preview.test.ts +0 -301
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.ai_conversations_rbac_tests = void 0;
|
|
51
|
+
require('source-map-support').install();
|
|
52
|
+
var bson_1 = require("bson");
|
|
53
|
+
var sdk_1 = require("../../../sdk");
|
|
54
|
+
var testing_1 = require("@tellescope/testing");
|
|
55
|
+
var setup_1 = require("../../setup");
|
|
56
|
+
var constants_1 = require("@tellescope/constants");
|
|
57
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
58
|
+
var _a = [process.env.NON_ADMIN_EMAIL, process.env.NON_ADMIN_PASSWORD], nonAdminEmail = _a[0], nonAdminPassword = _a[1];
|
|
59
|
+
/**
|
|
60
|
+
* Regression test: `ai_conversations` RBAC.
|
|
61
|
+
*
|
|
62
|
+
* Both `ai_conversations.send_message` and `ai_conversations.generate_ai_decision` are
|
|
63
|
+
* registered with `noAccessPermissions: true` ([api.ts:22699, 22721](packages/private/api/api/v1/api.ts)).
|
|
64
|
+
* Their only access gate is `if (req.session.type === 'enduser') throw 403`. They must ALSO
|
|
65
|
+
* check `session.access?.ai_conversations?.<action>` (and `session.access?.endusers?.read`
|
|
66
|
+
* for generate_ai_decision) — the standard pattern used 16 lines earlier in the same file
|
|
67
|
+
* at api.ts:22680 for the background_errors handler.
|
|
68
|
+
*
|
|
69
|
+
* This test:
|
|
70
|
+
* 1. Creates a role with explicit NO_ACCESS for ai_conversations (and endusers).
|
|
71
|
+
* 2. Assigns the role to the non-admin user.
|
|
72
|
+
* 3. Calls each endpoint as the non-admin.
|
|
73
|
+
* 4. Asserts each endpoint returns a 403-equivalent error (not 200).
|
|
74
|
+
* 5. Positive case: a role granting ai_conversations create (read/update denied) must pass
|
|
75
|
+
* the send_message gate — generating a NEW conversation requires only create access.
|
|
76
|
+
* 6. But the same role must still 403 when passing a conversationId: continuing an existing
|
|
77
|
+
* conversation reads its stored history (returned in the response) and appends to it,
|
|
78
|
+
* so it requires read + update access in addition to create.
|
|
79
|
+
* 7. Default-provider-permissions role (ai_conversations = Assigned): send_message must not
|
|
80
|
+
* 500. Regression: the post-generation $push previously ran through the caller's
|
|
81
|
+
* access-scoped DB, where "Assigned" filters can't match the just-created conversation,
|
|
82
|
+
* returning null and crashing the handler (Cannot read properties of null '_id') after
|
|
83
|
+
* credits were consumed. bedrock.ts now persists via tenant-scoped org-wide queries.
|
|
84
|
+
*
|
|
85
|
+
* Pre-fix:
|
|
86
|
+
* - send_message: 200 (or some downstream error from Bedrock) — NOT 403. Test fails.
|
|
87
|
+
* - generate_ai_decision: 200 with `{}` (handler responds early before access check). Test fails.
|
|
88
|
+
*
|
|
89
|
+
* Post-fix: both endpoints throw 403 before any work happens. Test passes.
|
|
90
|
+
*/
|
|
91
|
+
var ai_conversations_rbac_tests = function (_a) {
|
|
92
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
93
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
94
|
+
var roleName, grantRoleName, assignedRoleName, rbapId, grantRbapId, assignedRbapId, originalRoles, rbap, grantRbap, assignedRbap, _b, _c, _d, _e, _f;
|
|
95
|
+
return __generator(this, function (_g) {
|
|
96
|
+
switch (_g.label) {
|
|
97
|
+
case 0:
|
|
98
|
+
(0, testing_1.log_header)("ai_conversations RBAC bypass regression");
|
|
99
|
+
roleName = "f0005-ai-conversations-no-access-".concat(Date.now());
|
|
100
|
+
grantRoleName = "f0005-ai-conversations-create-granted-".concat(Date.now());
|
|
101
|
+
assignedRoleName = "f0005-ai-conversations-assigned-default-".concat(Date.now());
|
|
102
|
+
originalRoles = sdkNonAdmin.userInfo.roles;
|
|
103
|
+
_g.label = 1;
|
|
104
|
+
case 1:
|
|
105
|
+
_g.trys.push([1, , 19, 40]);
|
|
106
|
+
return [4 /*yield*/, sdk.api.role_based_access_permissions.createOne({
|
|
107
|
+
role: roleName,
|
|
108
|
+
permissions: __assign(__assign({}, constants_1.PROVIDER_PERMISSIONS), { ai_conversations: { create: null, read: null, update: null, delete: null }, endusers: { create: null, read: null, update: null, delete: null } }),
|
|
109
|
+
})];
|
|
110
|
+
case 2:
|
|
111
|
+
rbap = _g.sent();
|
|
112
|
+
rbapId = rbap.id;
|
|
113
|
+
// 2. Assign the role to the non-admin user and re-authenticate so the new
|
|
114
|
+
// session reflects the role's denied permissions.
|
|
115
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: [roleName] }, { replaceObjectFields: true })];
|
|
116
|
+
case 3:
|
|
117
|
+
// 2. Assign the role to the non-admin user and re-authenticate so the new
|
|
118
|
+
// session reflects the role's denied permissions.
|
|
119
|
+
_g.sent();
|
|
120
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 1500)];
|
|
121
|
+
case 4:
|
|
122
|
+
_g.sent();
|
|
123
|
+
return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)
|
|
124
|
+
// 3a. send_message must throw 403 (or equivalent access error). Pre-fix: succeeds (or
|
|
125
|
+
// fails downstream in Bedrock without 403). Post-fix: throws before any work.
|
|
126
|
+
];
|
|
127
|
+
case 5:
|
|
128
|
+
_g.sent();
|
|
129
|
+
// 3a. send_message must throw 403 (or equivalent access error). Pre-fix: succeeds (or
|
|
130
|
+
// fails downstream in Bedrock without 403). Post-fix: throws before any work.
|
|
131
|
+
return [4 /*yield*/, (0, testing_1.async_test)("ai_conversations.send_message must throw 403 when role denies ai_conversations", function () { return sdkNonAdmin.api.ai_conversations.send_message({
|
|
132
|
+
message: 'regression test',
|
|
133
|
+
type: 'Test',
|
|
134
|
+
}); }, {
|
|
135
|
+
shouldError: true,
|
|
136
|
+
onError: function (e) {
|
|
137
|
+
var _a, _b;
|
|
138
|
+
// Accept any 4xx access-denial response — handler may use 403 (recommended)
|
|
139
|
+
// or 400 with "access" / "permission" in the message.
|
|
140
|
+
var msg = ((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
141
|
+
var status = (_b = e === null || e === void 0 ? void 0 : e.status) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.code;
|
|
142
|
+
return status === 403 || status === 401
|
|
143
|
+
|| msg.includes('access') || msg.includes('permission') || msg.includes('forbidden');
|
|
144
|
+
},
|
|
145
|
+
})
|
|
146
|
+
// 3b. generate_ai_decision must throw 403 BEFORE the early res.json({}) response.
|
|
147
|
+
// Pre-fix: handler responds 200 with {} immediately and processes in background.
|
|
148
|
+
// Post-fix: handler throws 403 before res.json({}).
|
|
149
|
+
];
|
|
150
|
+
case 6:
|
|
151
|
+
// 3a. send_message must throw 403 (or equivalent access error). Pre-fix: succeeds (or
|
|
152
|
+
// fails downstream in Bedrock without 403). Post-fix: throws before any work.
|
|
153
|
+
_g.sent();
|
|
154
|
+
// 3b. generate_ai_decision must throw 403 BEFORE the early res.json({}) response.
|
|
155
|
+
// Pre-fix: handler responds 200 with {} immediately and processes in background.
|
|
156
|
+
// Post-fix: handler throws 403 before res.json({}).
|
|
157
|
+
return [4 /*yield*/, (0, testing_1.async_test)("ai_conversations.generate_ai_decision must throw 403 when role denies endusers/ai_conversations", function () { return sdkNonAdmin.api.ai_conversations.generate_ai_decision({
|
|
158
|
+
enduserId: new bson_1.ObjectId().toHexString(),
|
|
159
|
+
automationStepId: new bson_1.ObjectId().toHexString(),
|
|
160
|
+
outcomes: ['yes', 'no'],
|
|
161
|
+
prompt: 'regression test',
|
|
162
|
+
sources: [{ type: 'SMS', limit: 1 }], // non-empty so the validator passes; access check then fires
|
|
163
|
+
}); }, {
|
|
164
|
+
shouldError: true,
|
|
165
|
+
onError: function (e) {
|
|
166
|
+
var _a, _b;
|
|
167
|
+
var msg = ((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
168
|
+
var status = (_b = e === null || e === void 0 ? void 0 : e.status) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.code;
|
|
169
|
+
return status === 403 || status === 401
|
|
170
|
+
|| msg.includes('access') || msg.includes('permission') || msg.includes('forbidden');
|
|
171
|
+
},
|
|
172
|
+
})
|
|
173
|
+
// 4. Positive case: granting only ai_conversations create must pass the RBAC gate.
|
|
174
|
+
// send_message may still fail downstream (e.g. 400 "Organization has not set up credits"),
|
|
175
|
+
// but it must NOT be an access-denial error.
|
|
176
|
+
];
|
|
177
|
+
case 7:
|
|
178
|
+
// 3b. generate_ai_decision must throw 403 BEFORE the early res.json({}) response.
|
|
179
|
+
// Pre-fix: handler responds 200 with {} immediately and processes in background.
|
|
180
|
+
// Post-fix: handler throws 403 before res.json({}).
|
|
181
|
+
_g.sent();
|
|
182
|
+
return [4 /*yield*/, sdk.api.role_based_access_permissions.createOne({
|
|
183
|
+
role: grantRoleName,
|
|
184
|
+
permissions: __assign(__assign({}, constants_1.PROVIDER_PERMISSIONS), { ai_conversations: { create: 'All', read: null, update: null, delete: null } }),
|
|
185
|
+
})];
|
|
186
|
+
case 8:
|
|
187
|
+
grantRbap = _g.sent();
|
|
188
|
+
grantRbapId = grantRbap.id;
|
|
189
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: [grantRoleName] }, { replaceObjectFields: true })];
|
|
190
|
+
case 9:
|
|
191
|
+
_g.sent();
|
|
192
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 1500)];
|
|
193
|
+
case 10:
|
|
194
|
+
_g.sent();
|
|
195
|
+
return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
|
|
196
|
+
case 11:
|
|
197
|
+
_g.sent();
|
|
198
|
+
return [4 /*yield*/, (0, testing_1.async_test)("ai_conversations.send_message must NOT be access-denied when role grants create", function () { return sdkNonAdmin.api.ai_conversations.send_message({
|
|
199
|
+
message: 'positive-case test',
|
|
200
|
+
type: 'Test',
|
|
201
|
+
maxTokens: 1,
|
|
202
|
+
})
|
|
203
|
+
.then(function () { return 'allowed'; })
|
|
204
|
+
.catch(function (e) {
|
|
205
|
+
var _a, _b;
|
|
206
|
+
var msg = ((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
207
|
+
var status = (_b = e === null || e === void 0 ? void 0 : e.status) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.code;
|
|
208
|
+
if (status === 403 || status === 401
|
|
209
|
+
|| msg.includes('access') || msg.includes('permission') || msg.includes('forbidden')) {
|
|
210
|
+
throw e; // access denial — the gate incorrectly blocked a create-granted role
|
|
211
|
+
}
|
|
212
|
+
return 'allowed'; // downstream (e.g. credits) error is fine — the gate passed
|
|
213
|
+
}); }, { onResult: function (r) { return r === 'allowed'; } })
|
|
214
|
+
// 5. The create-granted (read/update-denied) role must still be blocked from CONTINUING an
|
|
215
|
+
// existing conversation — send_message with conversationId returns the full stored history
|
|
216
|
+
// and appends to it. Fake id is fine: the access check must fire before any lookup.
|
|
217
|
+
];
|
|
218
|
+
case 12:
|
|
219
|
+
_g.sent();
|
|
220
|
+
// 5. The create-granted (read/update-denied) role must still be blocked from CONTINUING an
|
|
221
|
+
// existing conversation — send_message with conversationId returns the full stored history
|
|
222
|
+
// and appends to it. Fake id is fine: the access check must fire before any lookup.
|
|
223
|
+
return [4 /*yield*/, (0, testing_1.async_test)("ai_conversations.send_message with conversationId must 403 when role denies read/update", function () { return sdkNonAdmin.api.ai_conversations.send_message({
|
|
224
|
+
message: 'conversationId bypass test',
|
|
225
|
+
type: 'Test',
|
|
226
|
+
maxTokens: 1,
|
|
227
|
+
conversationId: new bson_1.ObjectId().toHexString(),
|
|
228
|
+
}); }, {
|
|
229
|
+
shouldError: true,
|
|
230
|
+
onError: function (e) {
|
|
231
|
+
var _a, _b;
|
|
232
|
+
var msg = ((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
233
|
+
var status = (_b = e === null || e === void 0 ? void 0 : e.status) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.code;
|
|
234
|
+
return status === 403 || status === 401
|
|
235
|
+
|| msg.includes('access') || msg.includes('permission') || msg.includes('forbidden');
|
|
236
|
+
},
|
|
237
|
+
})
|
|
238
|
+
// 6. Regression: a role with default provider permissions (ai_conversations = Assigned)
|
|
239
|
+
// must be able to generate a new conversation without a 500. Previously the
|
|
240
|
+
// post-generation $push ran through the access-scoped DB, matched nothing under
|
|
241
|
+
// "Assigned", and crashed the handler with "Cannot read properties of null ('_id')".
|
|
242
|
+
];
|
|
243
|
+
case 13:
|
|
244
|
+
// 5. The create-granted (read/update-denied) role must still be blocked from CONTINUING an
|
|
245
|
+
// existing conversation — send_message with conversationId returns the full stored history
|
|
246
|
+
// and appends to it. Fake id is fine: the access check must fire before any lookup.
|
|
247
|
+
_g.sent();
|
|
248
|
+
return [4 /*yield*/, sdk.api.role_based_access_permissions.createOne({
|
|
249
|
+
role: assignedRoleName,
|
|
250
|
+
permissions: __assign({}, constants_1.PROVIDER_PERMISSIONS),
|
|
251
|
+
})];
|
|
252
|
+
case 14:
|
|
253
|
+
assignedRbap = _g.sent();
|
|
254
|
+
assignedRbapId = assignedRbap.id;
|
|
255
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: [assignedRoleName] }, { replaceObjectFields: true })];
|
|
256
|
+
case 15:
|
|
257
|
+
_g.sent();
|
|
258
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 1500)];
|
|
259
|
+
case 16:
|
|
260
|
+
_g.sent();
|
|
261
|
+
return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
|
|
262
|
+
case 17:
|
|
263
|
+
_g.sent();
|
|
264
|
+
return [4 /*yield*/, (0, testing_1.async_test)("ai_conversations.send_message must not 500 for Assigned-access (default provider) role", function () { return sdkNonAdmin.api.ai_conversations.send_message({
|
|
265
|
+
message: 'assigned-access regression test',
|
|
266
|
+
type: 'Test',
|
|
267
|
+
maxTokens: 1,
|
|
268
|
+
})
|
|
269
|
+
.then(function () { return 'ok'; })
|
|
270
|
+
.catch(function (e) {
|
|
271
|
+
var _a, _b;
|
|
272
|
+
var msg = ((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
273
|
+
var status = (_b = e === null || e === void 0 ? void 0 : e.status) !== null && _b !== void 0 ? _b : e === null || e === void 0 ? void 0 : e.code;
|
|
274
|
+
if (status === 500 || msg.includes('internal error') || msg.includes('cannot read properties')) {
|
|
275
|
+
throw e; // the null-update crash — regression
|
|
276
|
+
}
|
|
277
|
+
if (status === 403 || status === 401
|
|
278
|
+
|| msg.includes('access') || msg.includes('permission') || msg.includes('forbidden')) {
|
|
279
|
+
throw e; // Assigned access must pass the RBAC gate
|
|
280
|
+
}
|
|
281
|
+
return 'ok'; // downstream (e.g. credits) error is fine
|
|
282
|
+
}); }, { onResult: function (r) { return r === 'ok'; } })];
|
|
283
|
+
case 18:
|
|
284
|
+
_g.sent();
|
|
285
|
+
return [3 /*break*/, 40];
|
|
286
|
+
case 19:
|
|
287
|
+
_g.trys.push([19, 21, , 22]);
|
|
288
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: originalRoles !== null && originalRoles !== void 0 ? originalRoles : [] }, { replaceObjectFields: true })];
|
|
289
|
+
case 20:
|
|
290
|
+
_g.sent();
|
|
291
|
+
return [3 /*break*/, 22];
|
|
292
|
+
case 21:
|
|
293
|
+
_b = _g.sent();
|
|
294
|
+
return [3 /*break*/, 22];
|
|
295
|
+
case 22:
|
|
296
|
+
if (!rbapId) return [3 /*break*/, 26];
|
|
297
|
+
_g.label = 23;
|
|
298
|
+
case 23:
|
|
299
|
+
_g.trys.push([23, 25, , 26]);
|
|
300
|
+
return [4 /*yield*/, sdk.api.role_based_access_permissions.deleteOne(rbapId)];
|
|
301
|
+
case 24:
|
|
302
|
+
_g.sent();
|
|
303
|
+
return [3 /*break*/, 26];
|
|
304
|
+
case 25:
|
|
305
|
+
_c = _g.sent();
|
|
306
|
+
return [3 /*break*/, 26];
|
|
307
|
+
case 26:
|
|
308
|
+
if (!grantRbapId) return [3 /*break*/, 30];
|
|
309
|
+
_g.label = 27;
|
|
310
|
+
case 27:
|
|
311
|
+
_g.trys.push([27, 29, , 30]);
|
|
312
|
+
return [4 /*yield*/, sdk.api.role_based_access_permissions.deleteOne(grantRbapId)];
|
|
313
|
+
case 28:
|
|
314
|
+
_g.sent();
|
|
315
|
+
return [3 /*break*/, 30];
|
|
316
|
+
case 29:
|
|
317
|
+
_d = _g.sent();
|
|
318
|
+
return [3 /*break*/, 30];
|
|
319
|
+
case 30:
|
|
320
|
+
if (!assignedRbapId) return [3 /*break*/, 34];
|
|
321
|
+
_g.label = 31;
|
|
322
|
+
case 31:
|
|
323
|
+
_g.trys.push([31, 33, , 34]);
|
|
324
|
+
return [4 /*yield*/, sdk.api.role_based_access_permissions.deleteOne(assignedRbapId)];
|
|
325
|
+
case 32:
|
|
326
|
+
_g.sent();
|
|
327
|
+
return [3 /*break*/, 34];
|
|
328
|
+
case 33:
|
|
329
|
+
_e = _g.sent();
|
|
330
|
+
return [3 /*break*/, 34];
|
|
331
|
+
case 34:
|
|
332
|
+
// Re-authenticate the non-admin to drop the no-access role from their JWT
|
|
333
|
+
// before subsequent tests run.
|
|
334
|
+
// Role restore above re-triggers deauthenticate_user; wait > 1s so the freshly minted
|
|
335
|
+
// token's (second-floored) iat lands after the deauth timestamp and isn't permanently
|
|
336
|
+
// rejected by is_logged_in's iat-slack check. Matches the in-test re-auth above.
|
|
337
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 1500)];
|
|
338
|
+
case 35:
|
|
339
|
+
// Re-authenticate the non-admin to drop the no-access role from their JWT
|
|
340
|
+
// before subsequent tests run.
|
|
341
|
+
// Role restore above re-triggers deauthenticate_user; wait > 1s so the freshly minted
|
|
342
|
+
// token's (second-floored) iat lands after the deauth timestamp and isn't permanently
|
|
343
|
+
// rejected by is_logged_in's iat-slack check. Matches the in-test re-auth above.
|
|
344
|
+
_g.sent();
|
|
345
|
+
_g.label = 36;
|
|
346
|
+
case 36:
|
|
347
|
+
_g.trys.push([36, 38, , 39]);
|
|
348
|
+
return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
|
|
349
|
+
case 37:
|
|
350
|
+
_g.sent();
|
|
351
|
+
return [3 /*break*/, 39];
|
|
352
|
+
case 38:
|
|
353
|
+
_f = _g.sent();
|
|
354
|
+
return [3 /*break*/, 39];
|
|
355
|
+
case 39: return [7 /*endfinally*/];
|
|
356
|
+
case 40: return [2 /*return*/];
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
});
|
|
360
|
+
};
|
|
361
|
+
exports.ai_conversations_rbac_tests = ai_conversations_rbac_tests;
|
|
362
|
+
// Allow running this test file independently
|
|
363
|
+
if (require.main === module) {
|
|
364
|
+
console.log("\uD83C\uDF10 Using API URL: ".concat(host));
|
|
365
|
+
var sdk_2 = new sdk_1.Session({ host: host });
|
|
366
|
+
var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
|
|
367
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
368
|
+
return __generator(this, function (_a) {
|
|
369
|
+
switch (_a.label) {
|
|
370
|
+
case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
|
|
371
|
+
case 1:
|
|
372
|
+
_a.sent();
|
|
373
|
+
return [4 /*yield*/, (0, exports.ai_conversations_rbac_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
374
|
+
case 2:
|
|
375
|
+
_a.sent();
|
|
376
|
+
return [2 /*return*/];
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
}); };
|
|
380
|
+
runTests()
|
|
381
|
+
.then(function () {
|
|
382
|
+
console.log("✅ ai_conversations RBAC test suite completed successfully");
|
|
383
|
+
process.exit(0);
|
|
384
|
+
})
|
|
385
|
+
.catch(function (error) {
|
|
386
|
+
console.error("❌ ai_conversations RBAC test suite failed:", error);
|
|
387
|
+
process.exit(1);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
//# sourceMappingURL=ai-conversations-rbac.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-conversations-rbac.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/ai-conversations-rbac.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowed-paths-confinement.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/allowed-paths-confinement.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AAkEtD,eAAO,MAAM,+BAA+B;SAA2B,OAAO;iBAAe,OAAO;mBAqnBnG,CAAA"}
|