juspay / juspay/hyper-js

customBackendUrl blocked by restrictive CSP directive

Open
#14 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
ReScript
Stars
2
Forks
6
PR merge metrics
No merged PRs in 30d

Description

When using hyper-js with a `customBackendUrl` (for self-hosted deployments), the request is correctly routed to the custom backend.
However, the SDK injects a hardcoded Content Security Policy (CSP) directive that only allows specific Hyperswitch API (and localhost) domains. This prevents the browser from actually making the request to the configured `customBackendUrl`.

### Example Code
```javascript
const hyper = await loadHyper(publishable_key, {
env: environment === "sandbox" ? "SANDBOX" : "PROD",
customBackendUrl: "https://mycustombackend.com",
});
```

### Observed Error
```
Refused to connect to 'https://mycustombackend.com/payments/session_tokens'
because it violates the following Content Security Policy directive:
"connect-src 'self' https://checkout.hyperswitch.io https://dev.hyperswitch.io
https://beta.hyperswitch.io https://live.hyperswitch.io https://integ.hyperswitch.io
https://integ-api.hyperswitch.io https://app.hyperswitch.io https://sandbox.hyperswitch.io
https://api.hyperswitch.io ... [etc]"
```

### Expected Behavior:
When `customBackendUrl` is provided, the SDK should either:
- Not inject restrictive CSP headers at all, OR
- Dynamically include the `customBackendUrl` in the connect-src directive.

### Impact:
This makes self-hosting unusable because the SDK effectively blocks communication with any non-Hyperswitch backend.

### Environment:
- hyper-js version: `^2.0.4`
- Deployment: Self-hosted backend with `customBackendUrl`

### Steps to Reproduce:
- Initialize hyper-js with `customBackendUrl`.
- Attempt to create a payment session.
- See CSP violation error in the browser console.

### Suggested Fix:
- Adjust CSP handling to allow `customBackendUrl` domains.
- Provide a way to opt out of SDK-injected CSP entirely for self-hosted scenarios.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.