2.0.0 • Published 3 years ago

ui5-middleware-http-proxy v2.0.0

Weekly downloads
57
License
MIT
Repository
github
Last release
3 years ago

JavaScript Style Guide

ui5-middleware-http-proxy

Custom UI5 middleware extension for proxying http requests using request with additional http basic authentication support.

Useful for proxying requests to a remote service from a local development enviroment or serving ui5 resources from a remote host.

Works well with openui5-sdk-docker.

Prerequisites

Make sure your project is using the latest UI5 Tooling.

Getting started

Install

Add custom middleware

Add the custom middleware as a devDependency to your project.

With yarn:

yarn add -D ui5-middleware-http-proxy

Or npm:

npm i -D ui5-middleware-http-proxy

Additionally the custom task needs to be manually defined as a ui5 dependency in your project's package.json:

{
  "ui5": {
    "dependencies": [
      "ui5-middleware-http-proxy"
    ]
  }
}

Register

Register custom middleware

Register the custom middleware in your project's ui5.yaml:

server:
  customMiddleware:
    # proxy for ui5 resources
    - name: ui5-middleware-http-proxy
      mountPath: /resources
      afterMiddleware: compression
      configuration:
        baseUrl: https://openui5.hana.ondemand.com
        path: /resources
    # proxy for ui5 test resources
    - name: ui5-middleware-http-proxy
      mountPath: /test-resources
      afterMiddleware: compression
      configuration:
        baseUrl: http://localhost:5000
        path: /test-resources
    # proxy for service with self signed certificate and http basic authentication
    - name: ui5-middleware-http-proxy
      mountPath: /service
      afterMiddleware: compression
      configuration:
        debug: true
        baseUrl: https://services.odata.org
        path: /V2/Northwind/Northwind.svc
        secure: false
        auth:
          user: kratos
          pass: atreus

Additional configuration

Options

The custom middleware accepts the following configuration options:

nametypeDescriptionmandatorydefaultexamples
debugbooleanenable/disable debug logsnofalsetrue, false
baseUrlstringbaseUrl for proxying requestsyes-https://services.odata.org, http://localhost:5000
pathstringpath for proxying requestsno//resources, /V2/Northwind/Northwind.svc
securebooleanreject self-signed certificatesnotruetrue, false
authobjectcredentials for http basic authenticationno-
auth.userstringuser for http basic authenticationno-kratos, env:HTTP_PROXY_AUTH_USER
auth.passstringpassword for http basic authenticationno-atreus, env:HTTP_PROXY_AUTH_PASS

Support for .env files

Support for .env files is provided by the dotenv module.

Simply prefix your .env variables for with env: and provide them as auth.user and auth.pass in your configuration.

Instead of taking the plain string value, the variable will then be resolved against your .env file.

Example configuration file:

server:
  customMiddleware:
    # proxy using .env credentials
    - name: ui5-middleware-http-proxy
      mountPath: /service
      afterMiddleware: compression
      configuration:
        debug: true
        baseUrl: https://services.odata.org
        path: /V2/Northwind/Northwind.svc
        secure: false
        auth:
          user: env:MY_HTTP_PROXY_AUTH_USER
          pass: env:MY_HTTP_PROXY_AUTH_PASS

Example .env file:

MY_HTTP_PROXY_AUTH_USER=kratos
MY_HTTP_PROXY_AUTH_PASS=atreus
NOTE:

This is a breaking API change as of version ^2.0.0.

Version ^1.1.0 only supports static .env variables:

  • HTTP_PROXY_AUTH_USER
  • HTTP_PROXY_AUTH_PASS

Example app

Please have look at bookshop-ui.

2.0.0

3 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.9.0

4 years ago