lemaiwo / ui5-middleware-route-proxy

UI5Tooling route proxy
MIT License
11 stars 4 forks source link

UI5 proxy middleware using routes

Middleware for ui5-server, enabling proxy support.

Install

npm install ui5-middleware-route-proxy --save-dev

Configuration options (in $yourapp/ui5.yaml)

Each boolean or string field in a root path object can either represent the actual value or the name of a parameter in a .env file.

Example:

      debug: true
      /sap: 
        target: http(s)://host:port
        replacePath: true
        auth:
          user: Username
          pass: Password!
          client: '100' 

Example with target/user/pass in .env file:

      debug: true
      /sap: 
        target: PROXY_TARGET
        auth:
          user: PROXY_USERNAME
          pass: PROXY_PASSWORD
          client: PROXY_CLIENT

Example with target and dedicated Authorization header in .env file:

      debug: true
      /sap: 
        target: PROXY_TARGET
        auth:
          header: PROXY_AUTHORIZATION
        changeOrigin: true

Usage

  1. Define the dependency in $yourapp/package.json:
"devDependencies": {
    // ...
    "ui5-middleware-route-proxy": "*"
    // ...
},
"ui5": {
  "dependencies": [
    // ...
    "ui5-middleware-route-proxy",
    // ...
  ]
}

As the devDependencies are not recognized by the UI5 tooling, they need to be listed in the ui5 > dependencies array. In addition, once using the ui5 > dependencies array you need to list all UI5 tooling relevant dependencies.

  1. configure it in $yourapp/ui5.yaml:
server:
  customMiddleware:
  - name: ui5-middleware-route-proxy
    afterMiddleware: compression
    configuration:
      debug: true
      /routeRootPath: 
        target: PROXY_TARGET
        auth:
          user: PROXY_USERNAME
          pass: PROXY_PASSWORD
  1. Add a .env file with your target, username and password for the proxy:
PROXY_TARGET=<http(s)://host:port>
PROXY_USERNAME=<username>
PROXY_PASSWORD=<password>