@sap/asp-middleware

1.0.18 • Public • Published

@sap/asp-middleware

Overview

The asp-middleware is an extension for the @sap/approuter that enables usage of the ABAP Solution Service offered for the SAP BTP, ABAP Environment.

It takes care of the following:

  • User onboarding for the initial administrator of a new tenant
  • Routing to the right tenant url once a user onboarding is completed successfully

Usage

Approuter Middleware

This module must be loaded as an extension into the @sap/approuter.

The simplest way to achieve this is:

const approuter = require('@sap/approuter');
const ar = approuter();

ar.start({
  extensions: [ require('@sap/asp-middleware') ]
});

ABAP Solution Runtime Client

The AspRuntimeClient allows you to communicate with the ABAP Solution Service to get information about your tenants.

const AspRuntimeClient = require('@sap/asp-middleware/asp-runtime-client');

const client = AspRuntimeClient.getInstance();
const tenant = client.getTenant({
  consumerZoneId: '<consumer-zone-id>'
})

Get Tenant

The parameter consumerZoneId is passed to you during the getDependency call (as tenantId URL parameter) and the onSubscription call (as subscribedTenantId in the body), that is by default handled by the approuter component, but can also be implemented manually.

The getTenant call results in a Promise of a Tenant object, which has the following fields:

Name Description
tenantHost The host of the ABAP tenant corresponding to this consumer
consumerZoneId The zone ID of the consumer (as passed into the getTenant call)
abapServiceInstanceId The service instance ID of the ABAP service instance the tenant is located on
abapTenantId The id of the ABAP tenant itself

Configuration

A service instance of service abap-solution in plan standard must be bound to the approuter application.

As a last step the xs-app.json must be configured to route to the abap-solution service. As a minimum this results in the following xs-app.json file:

{
	"authenticationMethod": "route",
	"welcomeFile": "/ui",
	"logout": {
		"logoutEndpoint": "/public/logout",
		"logoutPage": "/ui"
	},
	"routes": [
		{
			"source": "^/sap/(.*)$",
			"target": "/sap/$1",
			"authenticationType": "xsuaa",
			"service": "com.sap.cloud.abap.solution",
			"csrfProtection": false
		},
		{
			"source": "^/ui(.*)$",
			"target": "/ui$1",
			"authenticationType": "xsuaa",
			"service": "com.sap.cloud.abap.solution",
			"csrfProtection": false
		}
	]
}

Custom User Onboarding Path

By configuring an environment variable called ASP_USER_ONBOARDING_PATHS, the application can decide, which paths should be intercepted for the onboarding of the initial user in the ABAP tenant. By default this is only /ui as this is the path to the ABAP Fiori Launchpad.

The variable should be configured as a JSON array. E.g.

["/path/to/entry_point_1","/path/to/entry_point_2"]

Getting Support

Create a BCP Ticket on BC-CP-ABA-ASP

Readme

Keywords

none

Package Sidebar

Install

npm i @sap/asp-middleware

Weekly Downloads

208

Version

1.0.18

License

SAP DEVELOPER LICENSE - SEE LICENSE.txt

Unpacked Size

132 kB

Total Files

49

Last publish

Collaborators

  • sap_extncrepos