1.0.17 • Published 1 month ago

@sap/asp-middleware v1.0.17

Weekly downloads
5
License
SAP DEVELOPER LIC...
Repository
github
Last release
1 month ago

@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:

NameDescription
tenantHostThe host of the ABAP tenant corresponding to this consumer
consumerZoneIdThe zone ID of the consumer (as passed into the getTenant call)
abapServiceInstanceIdThe service instance ID of the ABAP service instance the tenant is located on
abapTenantIdThe 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

1.0.17

1 month ago

1.0.16

1 month ago

1.0.14

3 months ago

1.0.13

5 months ago

1.0.12

5 months ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

4 years ago