@eeacms/volto-corsproxy
v5.0.1
Published
volto-corsproxy: Volto add-on
Downloads
3,195
Readme
volto-corsproxy
Volto add-on
Features
This package enables fetching data from third-party servers through the Volto HTTP server, this way bypassing any CORS security restrictions imposed by the browser.
The way it does this is by providing a pass-through CORS proxy server on the
path (configurable) /cors-proxy path. For example, any requests made to the
URL http://localhost:3000/cors-proxy/http://example.com/ will be piped to
the http://example.com website, through the Volto node server.
As you wouldn't want to provide an open proxy, all proxied destinations need to
be configured either via settings.allowed_cors_destinations (which takes
a list of hostnames) or an environment variable called
RAZZLE_ALLOWED_CORS_DESTINATIONS (where you need to provide a comma-separated
list of hostnames).
For example:
settings.allowed_cors_destinations = ['eea.europa.eu', 'plone.org']
or:
RAZZLE_ALLOWED_CORS_DESTINATIONS=eea.europa.eu,plone.org yarn startAs a convenience feature for dealing with third-party API endpoints, there's
a new action available, getProxiedExternalContent, somewhat similar to
Volto's getContent. Call it like: getProxiedExternalContent(thirdpartyurl)
and it will make that async content available in the Redux content reducer, at
store.content.subrequests[thirdpartyurl].
Getting started
Try volto-corsproxy with Docker
git clone https://github.com/eea/volto-corsproxy.git
cd volto-corsproxy
make
make startGo to http://localhost:3000
make start now defaults to Volto 18. To run the same setup against Volto 17, use:
VOLTO_VERSION=17 make
VOLTO_VERSION=17 make startAdd volto-corsproxy to your Volto project
Make sure you have a Plone backend up-and-running at http://localhost:8080/Plone
docker compose up backendStart Volto frontend
If you already have a volto project, just update
package.json:"dependencies": { "@eeacms/volto-corsproxy": "*" }and
volto.config.js:const addons = ['@eeacms/volto-corsproxy'];If not, create one with Cookieplone, as recommended by the official Plone documentation for Volto 18+:
uvx cookieplone project cd project-title
Install or update dependencies, then start the project:
make installFor a Cookieplone project, start the backend and frontend in separate terminals:
make backend-start make frontend-startFor a legacy Volto 17 project, install the package with
yarnand restart the frontend as usual.Go to http://localhost:3000
Happy editing!
Release
See RELEASE.md.
How to contribute
See DEVELOP.md.
Copyright and license
The Initial Owner of the Original Code is European Environment Agency (EEA). All Rights Reserved.
See LICENSE.md for details.
