Middleware for ui5-server, enabling proxy support.
npm install ui5-middleware-route-proxy --save-dev
- debug:
boolean
enable logging - root directory of the request uri:
object
used to match and forward requests to your server. Needs to include the leading slash character (/
).- target:
string
hostname of your backend server - replacePath:
string
optional. If the request path needs to be modified by taking out the root directory uri - auth:
object
authorization object with username and password ( passfalse
if authorization is not required )- user:
string
- pass:
string
- client:
string
optional. If the client is not the default client on the SAP system - header:
string
optional. Is used as value for theAuthorization
header if available.user
andpass
values are not used in this case.
- user:
- changeOrigin:
boolean
optional. If provided, the value will be added to the options of the http-proxy.
- target:
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
- 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 theui5 > dependencies
array you need to list all UI5 tooling relevant dependencies.
- 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
- 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>