Nanotechnology Promises Much

    ui5-middleware-http-proxy

    2.0.0 • Public • Published

    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:

    name type Description mandatory default examples
    debug boolean enable/disable debug logs no false true, false
    baseUrl string baseUrl for proxying requests yes - https://services.odata.org, http://localhost:5000
    path string path for proxying requests no / /resources, /V2/Northwind/Northwind.svc
    secure boolean reject self-signed certificates no true true, false
    auth object credentials for http basic authentication no -
    auth.user string user for http basic authentication no - kratos, env:HTTP_PROXY_AUTH_USER
    auth.pass string password for http basic authentication no - 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.

    Install

    npm i ui5-middleware-http-proxy

    DownloadsWeekly Downloads

    173

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    11.1 kB

    Total Files

    11

    Last publish

    Collaborators

    • pwasem