Build toolBuild tooltypeRuns at build time. Nothing of it ships in the deployed application.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

ui5-middleware-destination

A UI5 Tooling server middleware that proxies requests to backends named in WebIDE-style destination files and serves the routes of a neo-app.json, with Basic Authentication only.

An app that keeps its backend routes in neo-app.json and its system addresses in WebIDE-style destination files has two configurations the UI5 dev server does not read. This middleware reads both: it is entered under customMiddleware in ui5.yaml, destinationsPath names the folder holding the destination files (absolute, or relative to the project root, or set through the UI5_MIDDLEWARE_DESTINATIONS_PATH environment variable), and requests for the neo-app.json routes are proxied to the destinations they name. Optional settings are debug, strictSSL and resources, which with path and preferLocal can serve UI5 resources from a local path instead of the remote source. It is a development dependency of the UI5 project and is also listed in ui5.dependencies in package.json.

Facts

Latestv2.0.2ReleasedLast pushLicenceMIT

Where it sits

Lives in
Provides
Build and dev-server toolingUI5Build and dev-server toolingcapabilityServing an app locally and building it for deployment — proxying a backend, transpiling, bundling, and shaping the result for whatever will host it.

Who is behind it

Preetam Kajal RoutPreetam Kajal RoutPersonMaintains this
In the atlas: maintains 1, contributes to 9
@preetamkajalrout
maintainer

Before choosing this

Signals

ActivityQuietRelease and repository quiet for 75 months

Both observable publication channels have been quiet for at least 24 full months. This may be normal for stable software; check whether its current state still fits your use.

Conditions

PracticalFunctional boundary

It supports Basic Authentication only, so a backend that needs another method is not reachable through it.

What it declares

Every artifact

Type
Build tool
Origin
Independently maintained

As a build tool

Distributed through
npm

Connections1

Install

npm add ui5-middleware-destination

Derived from the package name. No recipe recorded; the README has the configuration.

README

quoted from preetamkajalrout/ui5-middleware-destination under MIT, read
preetamkajalrout/ui5-middleware-destination/README.mdOn GitHub

ui5-middleware-destination

Custom UI5 server middleware for projects using UI5 Tooling

  • Provides proxy capabilities and support for neo-app.json routes
  • Works with destinations from destination files, as WebIDE does
  • Supports serving resources from local system or remote CDN (like the SAPUI5 SDK or an ABAP application server)

Installation

npm i --save-dev ui5-middleware-destination

Pre-requisites

Create a directory to hold the destination files needed for your project -- preferably, out of your project's root so that the same config can be used for multiple projects. This also helps keeping your credentials from being committed.

This middleware will look in that directory for one (or many) json file(s) with a specific structure (check the example json).

As an alternative, the middleware will also look for destination files in the created directory. The structure of these files is the same as the one used in WebIDE destination files (also check the example template).

For the time being, the only properties required in a destination configuration are Name, URL, User, Password and WebIDEUsage.

NOTE: Storing passwords in plain text format is a potential security risk. Please comply with your organization's policy.

Options for SAPUI5 config in destinations file

{
  "Name": "sapui5", // Name is used as an identifier
  "Description": "SAPUI5 Resources",
  "URL": "C:\\Dev\\workspace\\sapui5\\sdk", // Can be used to specify cdn URL e.g. https://sapui5.hana.ondemand.com/
  "preferLocal": false // Flag to determine whether the resources files will be served from local system or cdn remote server
}

Usage

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

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.

2. Configure it in $yourapp/ui5.yaml
Simplest usage:
server:
  customMiddleware:
    - name: ui5-middleware-destination
      afterMiddleware: cors
      configuration:
  	    destinationsPath: '../path/to/destination/files'
Example config serving from CDN:
server:
  customMiddleware:
    - name: ui5-middleware-destination
      afterMiddleware: cors
      configuration:
        debug: true
        destinationsPath: '../path/to/destination/files'
        resources:
          preferLocal: false
          path: 'https://path/to/CDN/resources'
Example config serving from an ABAP AS with self-signed certificate:
server:
  customMiddleware:
    - name: ui5-middleware-destination
      afterMiddleware: cors
      configuration:
        debug: true
        destinationsPath: '../path/to/destination/files'
        resources:
          preferLocal: false
          path: 'https://<host>:<port>/path/to/ABAP/AS/resources'
        strictSSL: false
Example config serving from local resources:
server:
  customMiddleware:
    - name: ui5-middleware-destination
      afterMiddleware: cors
      configuration:
        destinationsPath: '../path/to/destination/files'
        resources:
          preferLocal: true
          path: '../local/path/to/resources'

Configuration options

ATTENTION: No options are mandatory, EXCEPT for destinationsPath. This option must be provided either in the ui5.yml file or as an environment variable (as in the description below).

Note that relative paths declared in these options are resolved against the project's root.

  • debug (boolean, default: false)
    Enables the logging of each request and where it is served from.

  • destinationsPath (string)
    Absolute or relative path to the destination files.
    If a relative path is provided, it is resolved against the project's root folder.
    If you do not provide this option in the ui5.yml file, you must set the UI5_MIDDLEWARE_DESTINATIONS_PATH environment variable.

  • strictSSL (boolean, default: true)
    When set to false, the proxy does not validate SSL certificates of the resource server.
    This covers the use case of, for example, serving routes from a corporate ABAP AS with a self-signed certificate.

  • resources (object)
    Options regarding SAPUI5 resources:

    • path (string)
      If preferLocal is true, then this is the local absolute or relative path to SAPUI5 resources.
      When preferLocal is false, you can provide a CDN URL for the SAPUI5 resources. or https://sapui5.hana.ondemand.com will be used as CDN source
      This option can be provided either in the ui5.yml file or through the UI5_MIDDLEWARE_RESOURCES_PATH environment variable.

    • preferLocal (boolean, default: false)
      When true, middleware redirects all the ui5 resources requests to local filesystem. This option can be provided through UI5_MIDDLEWARE_RESOURCES_LOCAL environment variable. Possible values in environment variable can be 0 or 1.

How it works

Limitations

Currently only BasicAuthentication is supported.

Contribution Guidelines

Pull Request are welcome. However, if change is complex or huge, Please create an issue and have a discussion on the approach before developing something.

Contributors

LICENSE

Project is distributed under MIT License

MIT, read

History

Latest

v2.0.2

  1. v2.0.1

  2. v1.1.2

  3. v1.1.1

  4. v1.0.3

  5. v1.0.2

  6. v1.0.1

  7. v1.0.0

On npm
5downloads per week, npm
Weekly downloads for ui5-middleware-destination26 complete calendar weeks from 2026-04-20 to 2026-10-18; the latest total is 5.20 Apr – 26 Apr: 1527 Apr – 3 May: 94 May – 10 May: 2311 May – 17 May: 2118 May – 24 May: 2125 May – 31 May: 51 Jun – 7 Jun: 148 Jun – 14 Jun: 1115 Jun – 21 Jun: 2322 Jun – 28 Jun: 2029 Jun – 5 Jul: 356 Jul – 12 Jul: 1313 Jul – 19 Jul: 420 Jul – 26 Jul: 1027 Jul – 2 Aug: 63 Aug – 9 Aug: 1610 Aug – 16 Aug: 1217 Aug – 23 Aug: 1224 Aug – 30 Aug: 231 Aug – 6 Sept: 47 Sept – 13 Sept: 1314 Sept – 20 Sept: 621 Sept – 27 Sept: 628 Sept – 4 Oct: 175 Oct – 11 Oct: 512 Oct – 18 Oct: 5
Build and dev-server tooling
  1. UI5 ToolsVS Code extension to serve, proxy, build and deploy UI5 projects
  2. ui5-middleware-route-proxyUI5 server middleware proxying route prefixes to a backend
  3. ui5-task-cachebuster-indexingUI5 builder task preparing build output for the cachebuster
  4. ui5-task-transpile-genUI5 builder task transpiling ES6 to ES5 with Babel
  5. ui5-middleware-odata-recorderUI5 middleware recording OData traffic as mock server datasets
  6. ui5-plugin-loaderUI5 Tooling v4 extension that registers other extensions
  7. ui5-deployerUI5 Tooling module deploying Fiori/UI5 apps to SAP systems
  8. ui5-task-dts-generatorUI5 builder task generating d.ts type declarations
  9. ui5-task-minifierUI5 builder task minifying HTML, CSS and JSON files
  10. ui5-middleware-oidcUI5 dev server middleware adding an OpenID Connect login
  11. generator-ui5-library-af-deployYeoman generator for Application Frontend config in UI5 libraries
  12. ui5-task-check-eocpUI5 build task warning when the app's UI5 version reaches EOCP
  13. @ui5/cliUI5 Tooling command line for project setup, dev server and build
  14. ui5-task-btp-manifestUI5 Tooling task writing the service name into the importer manifest
  15. ui5-middleware-approuterUI5 CLI middleware proxying the dev server through @sap/approuter
  16. ui5-middleware-capUI5 CLI middleware running a CDS server inside the UI5 dev server
  17. ui5-middleware-hmrExperimental UI5 middleware for hot module replacement
  18. ui5-middleware-iasyncUI5 middleware syncing interactions across browsers over websocket
  19. ui5-middleware-indexUI5 middleware serving a chosen welcome page at the root path
  20. ui5-middleware-livereloadLive reload middleware for the UI5 dev server
  21. ui5-middleware-oneloginUI5 middleware logging in with Playwright and reusing the session
  22. ui5-middleware-serveframeworkUI5 middleware serving a locally built UI5 framework
  23. ui5-middleware-servestaticUI5 middleware serving static resources from a path or npm package
  24. ui5-middleware-simpleproxyDev-server middleware proxying requests to a backend system
  25. ui5-middleware-ui5UI5 middleware including one UI5 application in another
  26. ui5-middleware-webjarsUI5 middleware serving static resources from JAR files (WebJars)
  27. ui5-middleware-websocketWebSocket support for Express-based dev servers such as UI5's
  28. ui5-task-cachebusterUI5 builder task cachebusting standalone UI5 applications
  29. ui5-task-copyrightUI5 builder task appending copyright headers to source files
  30. ui5-task-flatten-libraryUI5 builder task flattening library output for SAP NetWeaver
  31. ui5-task-i18ncheckUI5 builder task checking XML views for missing i18n texts
  32. ui5-task-minify-xmlUI5 builder task minifying XML views and fragments
  33. ui5-task-pwa-enablerUI5 builder task turning a UI5 app into a progressive web app
  34. ui5-task-zipperBuild task packaging the UI5 build result as a zip archive
  35. ui5-tooling-lessUI5 CLI extension compiling Less files into CSS
  36. ui5-tooling-modulesUI5 tooling extensions loading npm packages as UI5 modules
  37. ui5-tooling-stringreplaceUI5 CLI extension for string replacement during the build
  38. ui5-tooling-transpileUI5 CLI extension transpiling code during the UI5 build
  39. @ui5/loggerInternal logger of the UI5 CLI
  40. @ui5/middleware-code-coverageUI5 CLI middleware for Istanbul code coverage
  41. @ui5/tooling-webcDeprecated UI5 Tooling extensions for UI5 Web Components wrappers

Details

Sources4
Added by handdiscovered herechecked
npm registry, ui5-middleware-destinationversion, releases, installschecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
latestv2.0.2
first release
releases and cadence8, ~1d median
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainui5, developer-experience
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:preetamkajalrout-ui5-middleware-destination
JSON
/artifacts/preetamkajalrout-ui5-middleware-destination.json
MCP
Connecting an agent