npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@twilio/flex-ui-dev-proxy

v1.1.2

Published

This serves as a development proxy for dealing with CORS issues.

Downloads

602

Readme

flex-ui-dev-proxy

One ore more of the services that we use in Flex might not allow requests from localhost due to their CORS configuration.

The first service to do that is GoodData, which we use for displaying historical reporting. GoodData themselves recommend setting up a local proxy for development, but they only support Webpack.

We realize that not everyone uses Webpack and to make developer experience as good as possible, we came up with this package that you can run locally while developing plugins for Flex, without having to deal with any CORS issues.

When do I need this?

If you are a developer working on a plugin for Flex, and you need access to historical reporting dashboards, or if you're seeing connectivity issues to localhost:8081 in your Flex and you don't know what that means.

The problem

During the initialization phase, Flex will try to authenticate against GoodData application running on our custom domain analytics.ytica.com. Because the origin of that request is either localhost or some arbitrary domain, due to the configuration of the service the browser will reject the response.

The rejected response contains necessary set-cookie headers, containing the auth token, which means that the authentication will fail.

We can work around this by using a proxy running on localhost, rewriting the origin of the request and cookie domain, along with removing Secure flag and SameSite=None from set-cookie headers, allowing us to run this on http and not force everyone to switch to https.

Flex knows to target http://localhost:8081 when running in development environment. This can bechanged.

Usage

RECOMMENDED - Running a standalone application

To run the proxy as standalone app locally on http://localhost:8081, which is the default configuration, run npx @twilio/flex-ui-dev-proxy. You can specify the port with a -p parameter and host with -h.

To list all of the options, use --help.

Running proxy on https

In some use cases, it may be required for the proxy to be running on https. To do that, please pass a --https parameter.

When you run the proxy on https for the first time, you will be asked to generate a self-signed certificate. Having a certificate on your server is a requirement for the https to work.

The app uses openssl library to generate the certificate, please make sure it is installed and present in path.

Using the middleware

You can also import the createDevProxyMiddleware from @twilio/flex-ui-dev-proxy package in your custom express server and use it in your existing stack. The function takes an optional serviceUrl: string argument and returns the middleware.

Please keep in mind we have not thoroughly tested this variant and there might be some issues.

Using the proxy config only

If you're using webpack, you can import the proxy config in your webpack.config file directly by importing getProxyConfig from @twilio/flex-ui-dev-proxy. This function takes an optional serviceUrl: string argument and return a proxy config object compatible with http-proxy-middleware package.

Please keep in mind we have not thoroughly tested this variant and there might be some issues.

Configuration

If you decide to change the domain or port, the proxy will not work out of the box, since Flex depends on it running on http://localhost:8081. To change this, you need to set the insights.analyticsUrl configuration key in your appConfig.js to the correct proxy host and port.