Skip to content

Express app to proxy media from providers.

License

Notifications You must be signed in to change notification settings

europeana/media-proxy.js

Repository files navigation

Europeana Media Proxy

Maintainability Rating Reliability Rating Security Rating Coverage

Micro-service for proxying Europeana edm:hasView and edm:isShownBy web resources from providers' websites.

Documentation

Documentation is available at https://europeana.github.io/media-proxy.js/api/.

Requirements

  • Node.js 18
  • Data store credentials; one of:

Configuration

Configuration is by environment variable.

Required

Data source

Either a Europeana item metadata MongoDB, or a Europeana Record API is required as a data source. MongoDB is recommended.

MongoDB

APP_DATA_SOURCE=mongodb
MONGODB_DATABASE=europeana-item-metadata
MONGODB_URI=mongodb://user:[email protected]:27017,server2.example.org:27017

Record API

APP_DATA_SOURCE=record-api
EUROPEANA_API_KEY=YOUR_API_KEY
EUROPEANA_API_URL=https://api.europeana.eu/record

Optional

Alternative Europeana Record APIs

Should you need to permit the use of alternative Europeana Record APIs on a per-request basis, these need to be specified as a comma-separated list:

EUROPEANA_PERMITTED_API_URLS="https://api2.europeana.eu/record,https://api3.europeana.eu/record"

Elastic APM

To enable transaction logging to Elastic APM:

ELASTIC_APM_SERVER_URL=https://apm.example.org
ELASTIC_APM_LOG_LEVEL=info
ELASTIC_APM_ENVIRONMENT=development

Development

The Europeana Media Proxy is written as an Express.js app for Node.js.

Install

npm ci

Build & run for production

  • Building for production uses rollup
  • Running in production does not support use of .env files
npm run build
npm run start

The service will be available at http://localhost:3000/

Run for development

  • Runs with hot-reload of source
  • .env file support
npm run dev

The service will be available at http://localhost:3000/

Test

Run unit tests:

npm run test

Writing documentation

Documentation is generated by RapiDoc from the OpenAPI Specification v3 manifest in ./docs/api/openapi.yaml. To view locally, run the documentation web server:

npm run docs

The documentation will now be available at http://localhost:4000/. Reload the page after making changes to the manifest to see the latest documentation.

License

Licensed under the EUPL v1.2.

For full details, see LICENSE.md.

About

Express app to proxy media from providers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published