Search code examples
proxycontentful

Contentful ignoring proxy configuration


I'm trying to setup a proxy to Contentful Delivery SDK to intercept the response and add relevant data. For development purposes, the proxy is still running locally. This is the configuration I'm using right now:

const client = createClient({
  space: SPACE_ID,
  accessToken: ACCESS_TOKEN,
  host: CDN_URL,
  environment: ENVIRONMENT,
  basePath: 'api',
  retryOnError: false,
  proxy: {
    host: 'localhost',
    port: 8080,
    auth: {
      username: 'username',
      password: 'password',
    },
  },
});

For some reason, this client keeps ignoring the proxy settings, making the request directly to Contentful CDN. I tried removing the host field from the configuration, but it didn't change the outcome. I also tried using the httpsAgent configuration with HttpsProxyAgent instead of the proxy one, but also didn't work.

Versions:

  • "contentful": "^7.11.3"
  • "react": "^16.13.1"

Solution

  • Firstly, the proxy configuration cannot be used client-side. It's unclear if that is your use case here.

    There is a known bug here. Either try installing a newer version of Axios, which is the lib that the contentful SDK uses. Or use a proxyAgent:

    const HttpProxyAgent = require("http-proxy-agent");
    const httpAgent = new HttpProxyAgent({host: "proxyhost", port: "proxyport", auth: "username:password"})
    

    Now just pass the agent into the create client method:

    const client = createClient({
        ....
        httpAgent: httpAgent,
        ....
    });