General
For information on BlueWorx general licensing see: How is BlueWorx Licensed?
BlueWorx is a suite of applications for the Neptune DXP SAP Edition application platform. The Neptune platform uses several open source and commercial libraries.
Neptune Platform
Neptune provides information on the open-source software used in their product. See the following links or search the Neptune Software website for up-to-date information.
- Neptune Software – https://www.neptune-software.com
- Neptune DXP21 – https://docs.neptune-software.com/neptune-sap-edition/21/resources-help/open-source-libraries.html
- Neptune DXP22 – https://docs.neptune-software.com/neptune-sap-edition/22/resources-help/open-source-libraries.html
- Neptune DXP23 - https://docs.neptune-software.com/neptune-sap-edition/23/resources-help/open-source-libraries.html
SAP UI5
Neptune makes available packaged versions of SAP UI5. SAP releases most of UI5 under open-source licensing as Open UI5. Some components of SAP UI5 are made available to SAP customers under SAP commercial licensing.
See differences between OpenUI5 and SAPUI5 at https://sapui5.hana.ondemand.com/#/topic/5982a9734748474aa8d4af9c3d8f31c0
Library / Project | Description | Licenses / More Information |
OpenUI5 | Open-source components of SAP UI5 | License: Apache License 2.0 https://github.com/SAP/openui5/blob/master/LICENSE.txt
|
SAP UI5 | Commercially licensed components of SAP UI5 | All BlueWorx users are required to be licensed SAP users. |
OpenUI5 and SAP UI5 in turn leverage open-source libraries.
Cordova
The mobile client application prepared by the Neptune DXP application platform uses the open-source Cordova project, as well as commercial and community plugins in the application build and build process.
Library / Project | Description | Licenses / More Information |
Cordova | Apache foundation project to create mobile applications from HTML, JavaScript, CSS and native application code via plugins. |
License: Apache License 2.0
|
Core Plugins
These are the core plugins used by the Neptune Platform application packaging (Mobile Client) as at version DXP23 (23.10.0008). Plugins provide a native device functionality to the application. Some plugins are shared by all mobile platforms, others are specific to Android or iOS. There are additional plugins required for a mobile application prepared for BlueWorx and these are list further down in this document under the BlueWorx section.
The included plugins should be reviewed when building mobile clients. Plugins listed in this section are dependent on the Neptune version, the mobile client configuration, and the client environment. Neptune may change any, at any time.
Library / Project | Description | Licenses / More Information |
cordova-plugin-camera | Provides an API for taking pictures and for choosing images from the system's image library. | https://www.npmjs.com/package/cordova-plugin-camera License: Apache 2.0 |
cordova-plugin-cookiemaster | Allows you to get and set cookie values from your WebView through a simple interface. | https://www.npmjs.com/package/cordova-plugin-cookiemaster
License: MIT |
cordova-plugin-device | This plugin defines a global device object, which describes the device's hardware and software. | https://www.npmjs.com/package/cordova-plugin-device
License: Apache 2.0 |
cordova-plugin-dialogs
| This plugin provides access to some native dialog UI elements. | https://www.npmjs.com/package/cordova-plugin-dialogs
License: Apache 2.0 https://github.com/apache/cordova-plugin-dialogs/blob/master/LICENSE |
cordova-plugin-file
| This plugin implements a File API allowing read/write access to files residing on the device. | https://www.npmjs.com/package/cordova-plugin-file
License: Apache 2.0 |
cordova-plugin-geolocation
| This plugin provides information about the device's location, such as latitude and longitude. | https://www.npmjs.com/package/cordova-plugin-geolocation
License: Apache 2.0 |
cordova -plugin-inappbrowser
| You can show helpful articles, videos, and web resources inside of your app.[1] | https://www.npmjs.com/package/cordova-plugin-inappbrowser
License: Apache 2.0 https://www.npmjs.com/package/cordova-plugin-inappbrowser?activeTab=code (Navigate to LICENSE file)
|
cordova-plugin-media
| This plugin provides the ability to record and play back audio files on a device. | https://www.npmjs.com/package/cordova-plugin-media
License: Apache 2.0 https://github.com/apache/cordova-plugin-media/blob/master/LICENSE |
cordova-plugin-media-capture
| Provides access to the device's audio, image, and video capture capabilities. | https://www.npmjs.com/package/cordova-plugin-media-capture
License: Apache 2.0 |
cordova-plugin-network-information
| Provides information about the device's cellular and wifi connection, and whether the device has an internet connection. | https://www.npmjs.com/package/cordova-plugin-network-information
License: Apache 2.0 https://github.com/apache/cordova-plugin-network-information/blob/master/LICENSE |
cordova-plugin-screen-orientation
| Set/lock the screen orientation in a common way for iOS, Android, and windows-uwp. | https://www.npmjs.com/package/cordova-plugin-screen-orientation
License: Apache 2.0 https://www.npmjs.com/package/cordova-plugin-screen-orientation |
cordova-plugin-secure-key-store
| This plugin will add three new methods to window scope, for saving sensitive data, retrieving saved data and for removing data. | https://www.npmjs.com/package/cordova-plugin-secure-key-store
License: MIT https://github.com/pradeep1991singh/cordova-plugin-secure-key-store/blob/master/LICENSE |
cordova-plugin-theme-detection
| Detects whether the dark mode is enabled on the device or not. | https://www.npmjs.com/package/cordova-plugin-theme-detection
License: MIT https://github.com/mariusbackes/cordova-plugin-theme-detection (No license file. README.MD states MIT license)
|
cordova-plugin-vibration
| Provides a way to vibrate the device. | https://www.npmjs.com/package/cordova-plugin-vibration
License: Apache 2.0 https://github.com/apache/cordova-plugin-vibration/blob/master/LICENSE |
Android
The following plugins are additional to the core plugins when producing the Neptune Mobile Client for Android.
Library / Project | Description | Licenses / More Information |
cordova-plugin-android-fingerprint-auth | Provides the ability to use fingerprint in place of a PIN Code. | https://www.npmjs.com/package/cordova-plugin-android-fingerprint-auth
License: Apache 2.0 |
cordova-plugin-androidx-adapter | Provides a shim to migrate references to the legacy Android Support Library to the new AndroidX mappings in a Cordova Android platform project. | https://www.npmjs.com/package/cordova-plugin-androidx-adapter License: MIT |
cordova-plugin-splashscreen[2] | Displays and hides a splash screen while your web application is launching. Using its methods you can also show and hide the splash screen manually. | https://www.npmjs.com/package/cordova-plugin-splashscreen
License: Apache 2.0 |
cordova-plugin-statusbar | Provides some functions to customize the iOS and Android StatusBar. | https://www.npmjs.com/package/cordova-plugin-statusbar
License: Apache 2.0 https://github.com/apache/cordova-plugin-statusbar/blob/master/LICENSE |
cordova-plugin-webview-checker | Returns the version of the Android webview. | https://www.npmjs.com/package/cordova-plugin-webview-checker
License: MIT https://github.com/NoNameProvided/cordova-plugin-webview-checker/blob/master/LICENSE |
cordova-plugin-whitelist[3] |
| No longer available. Not required since Cordova android version 10 (released in July 2021) as the whitelist was integrated into the Cordova platform code for Android.
See https://cordova.apache.org/news/2021/06/28/whitelist-plugin-release.html which notes that the plugin is locked to less that version 10. |
iOS
The following plugins are additional to the core plugins when producing the Neptune Mobile Client for iOS.
Library / Project | Description | Licenses / More Information |
@castana/cordova-plugin-ios-xhr[4] | Provides a native network layer is response to the change of WebView with Cordova platform-ios version 6. | https://www.npmjs.com/package/@castana/cordova-plugin-ios-xhr License: MIT |
cordova-plugin-wkwebview-inject-cookie
| Fixes an issue with syncing of cookies to the WebView. | https://www.npmjs.com/package/cordova-plugin-wkwebview-inject-cookie
License: Apache 2.0 |
cordova-plugin-ios-faceid
| Faceid support | https://www.npmjs.com/package/cordova-plugin-ios-faceid
License: Apache 2.0 https://github.com/Cheney925/cordova-plugin-ios-faceid/blob/master/LICENSE |
Environment Specific Plugins
The plugins that a packaged by the Neptune Platform into a Cordova application package depend on the configuration set in the Neptune Mobile Client. The plugins should always be reviewed. The following is provided as an example:
Library / Project | Description | Licenses / More Information |
cordova-plugin-oauth | Added when using the OAuth2 authentication flow. | https://www.npmjs.com/package/cordova-plugin-oauth License: Apache 2.0 |
cordova-client-cert-authentication
| Client certificate authentication (Android). | https://www.npmjs.com/package/cordova-client-cert-authentication
License: Apache 2.0 |
cordova-plugin-client-certificate-support
| Client certificate authentication (iOS). | https://www.npmjs.com/package/cordova-plugin-client-certificate-support
License: Apache 2.0 |
@brodybits/cordova-plugin-ios-xhr
| Required for client certificate authentication (iOS). | https://github.com/brody4hire/cordova-plugin-ios-xhr
License: MIT https://github.com/brody4hire/cordova-plugin-ios-xhr/blob/main/LICENSE |
@havesource/cordova-plugin-push
| Push notification support | https://www.npmjs.com/package/@havesource/cordova-plugin-push
License: MIT |
pushwoosh-pgb-plugin
| Push notification support | https://www.npmjs.com/package/pushwoosh-pgb-plugin
License: Custom https://github.com/Pushwoosh/pushwoosh-phonegap-plugin/blob/master/LICENSE.md
Copyright (c) 2014 Pushwoosh (http://www.pushwoosh.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
(i) the original and/or modified Software should be used exclusively to work with Pushwoosh services,
(ii) the above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
BlueWorx
In addition to the content provided by Neptune Software, BlueWorx contains some additional libraries and requires some additional Cordova plugins.
JavaScript Libraries
These libraries are provided either as:
- Part of a content bundle for the mobile application, and/or,
- As MIME repository content delivered in the BlueWorx transports, and/or
- Embedded into the BlueWorx Neptune applications.
Mobile Application Bundle/MIME Repository
These libraries are bundled for inclusion in mobile application packages and are supplied in by transport to the SAP MIME repository unless it is explicitly noted that they as in a single location.
Library / Project | Description | Licenses / More Information |
DOMPurify | Sanitisation of user input for Rich Inspection Text. MIME Repository only | https://github.com/cure53/DOMPurify/tree/3.0.5 License: Apache 2.0 and Mozilla Public License |
Leaflet | JS Library for interactive maps. | https://github.com/Leaflet/Leaflet/tree/v1.2.0
License: BSD 2-Clause License |
Esri-leaflet-cluster | Enables visualization of ArcGIS Feature Services as clusters using the L.MarkerCluster Leaflet Plugin. | https://github.com/Esri/esri-leaflet-cluster/tree/v2.0.0
License: Apache 2.0 https://github.com/Esri/esri-leaflet-cluster/blob/v2.0.0/LICENSE |
Esri-leaflet | Leaflet plugins for working with a handful of the most popular ArcGIS Service types.
| https://github.com/Esri/esri-leaflet/tree/v2.1.1
License: Apache 2.0 |
Google-mutant-leaflet | Allows Google maps to be displayed by Leaflet. | Custom created in 2017 using code from: License: THE BEER-WARE LICENSE https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant/-/blob/master/LICENSE?ref_type=heads
and
https://github.com/shramov/leaflet-plugins License: MIT https://github.com/shramov/leaflet-plugins/blob/master/LICENSE
|
Leaflet-marker-cluster | Provides Beautiful Animated Marker Clustering functionality for Leaflet.
| https://github.com/Leaflet/Leaflet.markercluster
License: MIT |
Leaflet-shape-markers | Leaflet plugin to draw simple shape markers with fixed width. | https://github.com/Esri/Leaflet.shapeMarkers/releases/tag/v1.0.6
License: Apache 2.0 |
Proj4 | JavaScript library to transform point coordinates from one coordinate system to another. | https://github.com/proj4js/proj4js/tree/2.4.4
License: Custom https://github.com/proj4js/proj4js/blob/2.4.4/LICENSE.md
##Proj4js -- Javascript reprojection library.
Authors:
Mike Adair madairATdmsolutions.ca Richard Greenwood richATgreenwoodmap.com Didier Richard didier.richardATign.fr Stephen Irons stephen.ironsATclear.net.nz Olivier Terral oterralATgmail.com Calvin Metcalf cmetcalfATappgeo.com Copyright (c) 2014, Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Proj4Leaflet | Adds support for using projections supported by Proj4js. | https://github.com/kartena/Proj4Leaflet/blob/1.0.2
License: BSD 2-Clause "Simplified" License |
Turf | A modular geospatial engine written in JavaScript. | https://github.com/Turfjs/turf/blob/v3.0.11
License: MIT |
Moment | JavaScript date library for parsing, validating, manipulating, and formatting dates. | https://github.com/moment/moment/tree/2.29.1
License: MIT |
Moment-timezone | IANA Time zone support for Moment.js. | https://github.com/moment/moment-timezone/tree/0.5.33
License: https://github.com/moment/moment-timezone/blob/0.5.33/LICENSE |
Json-rules-engine-simplified | Used for evaluating various application rules. | https://github.com/RxNT/json-rules-engine-simplified
License: Apache 2.0 https://github.com/RxNT/json-rules-engine-simplified/blob/master/LICENSE |
PapaParse | For JSON to CSV and CSV to JSON conversion. | https://github.com/mholt/PapaParse/tree/4.1.0
License: MIT |
Embedded into the BlueWorx Neptune applications
These libraries are embedded as script objects in the BlueWorx application content rather than loaded from packaged script files.
Library / Project | Description | Licenses / More Information |
Poly-decomp | This library allows for decomposing polygons into constituent convex polygons. | https://github.com/schteppe/poly-decomp.js License: MIT |
FileSaver (1.3.2) | FileSaver.js is the solution to saving files on the client-side.
| https://github.com/eligrey/FileSaver.js/tree/1.3.2
License: Custom
Copyright © 2016 Eli Grey.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
Cordova
These plugins are used by both Android and iOS packages.
Required Plugins
These plugins are in addition to the standard Neptune plugins as at Neptune DXP23 (as Neptune standard plugins can change with Neptune updates).
Library / Project | Description | Licenses / More Information |
cordova-sqlite-evcore-extbuild-free | SQLite database for storing large offline data sets | https://github.com/storesafe/cordova-sqlite-evcore-extbuild-free
License: Commercial[5]/GPL3 https://github.com/litehelpers/Cordova-sqlite-evcore-extbuild-free/blob/master/LICENSE.md |
cordova-plugin-file-opener2 | Opens a file in the native application, e.g. Gallery for photos. | https://www.npmjs.com/package/cordova-plugin-file-opener2
License: MIT |
cordova-plugin-insomnia | Prevent the screen of the mobile device from falling asleep during sync. | https://www.npmjs.com/package/cordova-plugin-insomnia
License: MIT |
Optional Plugins
Plugins that enable specific features to BlueWorx but are not required for core functionality.
Library / Project | Description | Licenses / More Information |
cordova-plugin-app-version | Provides version information for the app. | https://www.npmjs.com/package/cordova-plugin-app-version
License: https://github.com/sampart/cordova-plugin-app-version/blob/master/LICENSE |
cordova-plugin-chooser | Displays a file picker to allow a database to be selected when importing a map database | https://github.com/soltius/cordova-plugin-chooser
License: Apache 2.0 |
phonegap-plugin-barcodescanner | Enable barcode scanning. | https://github.com/soltius/phonegap-plugin-barcodescanner
License: MIT |
cordova-plugin-x-socialsharing | Export of map database. | https://www.npmjs.com/package/cordova-plugin-x-socialsharing
License: MIT |
[1] The inappbrowser plugin is used in authentication flows in Neptune DXP.
[2] Not required for the cordova android platform from version 12 following changes to splashscreen handling and should be removed before building the mobile application.
[3] Not required and should be removed before building the mobile application.
[4] This plugin is not required if the customer environment has been set up to allow CORS. See https://cordova.apache.org/announcements/2020/06/01/cordova-ios-release-6.0.0.html for information on the origin app://localhost.
[5] This was an original standard component of Neptune and has been licensed by Neptune them for Neptune customers.