The descriptor for applications, components, and libraries (in short: app descriptor) is inspired by the WebApplication Manifest concept introduced by the W3C. The descriptor provides a central, machine-readable, and easy-to-access location for storing metadata associated with an application, an application component, or a library.
In general, the app descriptor describes the behavior of an app through attributes. It doesn't directly influence that behavior itself for the most part. When a section in the app descriptor does affect the behavior of an app, this is described in the API Reference. for the corresponding namespace.
The data of the app descriptor is stored in JSON format in the manifest.json
file. The developer creates the file with attributes in different namespaces. It contains, for example, the app ID, the version, the data sources used, along with the required components and libraries. The existence of the manifest.json
file must be declared in the component metadata, which is then delivered as part of the application archive. After delivery, the file is read-only.
Every new version of SAPUI5 implies a new version of the app descriptor. In the following table, you can see how the SAPUI5 version is related to the descriptor version and the value of _version.
App Descriptor Release and SAPUI5 Version
App Descriptor Release |
SAPUI5 Version |
_version |
---|---|---|
Version 2 |
>=1.30 |
1.1.0 |
Version 3 |
>=1.32 |
1.2.0 |
Version 4 |
>=1.34 |
1.3.0 |
Version 5 |
>=1.38 |
1.4.0 |
Version 6 |
>=1.42 |
1.5.0 |
Version 7 |
>=1.46 |
1.6.0 |
Version 8 |
>=1.48 |
1.7.0 |
Version 9 |
>=1.50 |
1.8.0 |
Version 10 |
>=1.52 |
1.9.0 |
Version 11 |
>=1.54 |
1.10.0 |
Version 12 |
>=1.56 |
1.11.0 |
Version 13 |
>=1.58 |
1.12.0 |
Version 14 |
>=1.61 |
1.13.0 |
Version 15 |
>=1.62 |
1.14.0 |
Version 16 |
>=1.66 |
1.15.0 |
Version 17 |
>=1.70 |
1.16.0 |
Version 18 |
>=1.71 |
1.17.0 |
Version 19 |
>=1.74 |
1.18.0 |
Version 20 |
>=1.75 |
1.19.0 |
Version 21 |
>=1.76 |
1.20.0 |
Version 22 |
>=1.77 |
1.21.0 |
Version 23 |
>=1.78 |
1.22.0 |
Version 24 |
>=1.79 |
1.23.0 |
Version 25 |
>=1.80 |
1.24.0 |
Version 26 |
>=1.81 |
1.25.0 |
Version 27 |
>=1.82 |
1.26.0 |
Version 28 |
>=1.83 (SAPUI5 1.83 was not released, see 2979657) |
1.27.0 |
Version 29 |
>=1.84 |
1.28.0 |
Version 30 |
>=1.85 |
1.29.0 |
Version 31 |
>=1.86 |
1.30.0 |
Version 32 |
>=1.87 |
1.31.0 |
Version 33 |
>=1.88 |
1.32.0 |
Version 34 |
>=1.90 |
1.33.0 |
Version 35 |
>=1.92 |
1.34.0 |
Version 36 |
>=1.93 |
1.35.0 |
Version 37 |
>=1.95 |
1.36.0 |
Version 38 |
>=1.96 |
1.37.0 |
Version 39 |
>=1.98 |
1.38.0 |
Version 40 |
>=1.99 |
1.39.0 |
Version 41 |
>=1.100 |
1.40.0 |
Version 42 |
>=1.101 |
1.41.0 |
Version 43 |
>=1.102 |
1.42.0 |
Version 44 |
>=1.103 |
1.43.0 |
Version 45 |
>=1.104 |
1.44.0 |
Version 46 |
>=1.105 |
1.45.0 |
Version 47 |
>=1.106 |
1.46.0 |
Version 48 |
>=1.107 |
1.47.0 |
Version 49 |
>=1.108 |
1.48.0 |
Version 50 |
>=1.109 |
1.49.0 |
Version 51 |
>=1.110 |
1.50.0 |
Version 52 |
>=1.111 |
1.51.0 |
Version 53 |
>=1.112 |
1.52.0 |
Version 54 |
>=1.113 |
1.53.0 |
Version 55 |
>=1.114 |
1.54.0 |
Version 56 |
>=1.115 |
1.55.0 |
Version 57 |
>=1.116 |
1.56.0 |
Version 58 |
>=1.117 |
1.57.0 |
Version 59 |
>=1.118 |
1.58.0 |
Version 60 |
>=1.119 |
1.59.0 |
Version 61 |
>=1.120 |
1.60.0 |
Version 62 |
>=1.121 |
1.61.0 |
Version 63 |
>=1.122 |
1.62.0 |
Version 64 |
>=1.123 |
1.63.0 |
Version 65 |
>=1.124 |
1.64.0 |
Version 66 |
>=1.126 |
1.65.0 |
For more information on the new fields introduced in each version, check out Migration Information for Upgrading the Descriptor File
The component factory function Component.create
, as introduced with 1.58, loads the manifest.json
by default before the component instance is created. With this, you can preload the dependencies (libraries and components) and, thus, improve the performance for loading the component. The preload is also available for models, which can be flagged for preload during component loading.
The manifest
option allows you to configure when and from where the descriptor is loaded:
-
Default, equivalent to setting
manifest
totrue
.// "Component" required from module "sap/ui/core/Component" // load manifest.json from default location and evaluate it before creating an instance of the component Component.create({ name: "sap.my.component", });
-
Specify an alternative URL as parameter for
manifest
for the component factory function:// "Component" required from module "sap/ui/core/Component" // load via manifest URL Component.create({ name: "sap.my.component", manifest: "any/location/sap/my/component/manifest.json" });
-
There are two possible scenarios for setting the
manifest
flag tofalse
:-
The component defines
manifest: "json"
in its Component Metadata.In this case, the descriptor is loaded and evaluated after the Component controller. All dependencies defined in the descriptor will then also be loaded. Afterwards, the Component is instantiated.
-
The component does not define
manifest: "json"
in its Component Metadata.This is typically the case for older legacy Components without a descriptor. In this case, only the Component's class metadata is evaluated. No additional descriptor file will be loaded.
// "Component" required from module "sap/ui/core/Component" // load component without loading a manifest first // - Case 1: the manifest.json is loaded after the Component controller // - Case 2: no manifest.json is loaded (legacy) Component.create({ name: "sap.my.component", manifest: false });
-
When you enable
manifest
, all legacy component metadata needs to be migrated into the descriptor for applications/components. Only those entries in the descriptor for components will be respected by the component and all other entries will be ignored.
Inside the app descriptor, you can use special URLs prefixed with ui5://
. These URLs will be resolved automatically during component startup before any models are created.
The ui5://
URLs have the following properties:
- only absolute URLs are allowed, e.g.
ui5://my/path/to/sample
, but notui5:my/app/path
, - all URL prefixes to be used inside a
ui5://
URL must be registered on the UI5 loader beforehand (see the example below), sap.ui5/resourceRoots
can be part of aui5://
URL,- the component factory
Component.create
takes care of defining the resource roots before anyui5://
URLs are resolved.
One common use case is the resolution of local annotation files. By default the local annotation files are resolved relative to the manifest. When using a ui5://
URL, you can enforce a different resolution, e.g. to a server-absolute URL.
In this sample, we make sure that the component location is registered as a path on the UI5 loader. Additionally, we assume that the host system ishttp://localhost:8080
:
sap.ui.loader.config({
paths: {
"my/url/prefix": "this/url/is/reachable"
}
})
The following snippet shows a sample annotation file configuration in the sap.app/dataSources
section of the app descriptor:
{
...
"sap.app": {
"dataSources": {
"OData": {
"uri": "/path/to/odata/service",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"annotations": ["annotations"]
...
}
},
...
"annotations": {
"uri": "ui5://my/url/prefix/annotations.xml",
"type": "ODataAnnotation"
}
...
}
}
...
}
During startup of the respective component the resolution of the ui5://
URL for the sample annotation will look like this:
ui5://my/url/prefix/annotations.xml
is resolved to:
http://localhost:8080/this/url/is/reachable/annotations.xml
You can find an example
manifest.json
file with sample code for the descriptor content here.
The content for the descriptor is contained in the following namespaces: without
, sap.app
, sap.ui
, sap.ui5
, sap.platform.abap
, sap.platform.hcp
, and sap.fiori
. The following tables show the application-specific attributes provided by the respective namespaces:
Attributes in the without namespace
Attribute |
Description |
---|---|
|
Start page of your app, if available |
|
JSON schema URI |
Attributes in the mandatory sap.app namespace
Attribute |
Description |
---|---|
|
A mandatory attribute that has to be provided in dot notation and specifies an ID for the project that must be unique in the system. It must match the namespace provided in the corresponding If, for example, a module is instantiated there as follows: return UIComponent.extend("sap.ui.demo.walkthrough.Component", {
metadata : {
manifest: "json"
},
... then its It's used as a reference point for most operations involving the app descriptor. If the project is the app variant of an existing application,
|
|
Possible values:
|
|
The i18n property is an optional attribute and contains one of the following:
If the manifest contains placeholders in |
|
Mandatory version of the app (semantic version with the following format |
|
Array of relative paths to the nested |
|
Relative path back to the |
|
Mandatory attribute; to make this property language dependent (recommended), use a key in double curly brackets: |
|
Subtitle; to make this property language dependent (recommended), use a key in double curly brackets: |
|
Short version of the title; to make this property language dependent (recommended), use a key in double curly brackets: |
|
Needed for CDM (Common Data Model) conversion of tiles; to make this property language dependent (recommended), use a key in double curly brackets: |
|
Description; to make this property language dependent (recommended), use a key in double curly brackets: |
|
Contains the following:
|
|
Application component hierarchy (SAP's component names for bug reports); attribute is mandatory for SAP apps, but is not used so far for apps developed outside SAP |
|
Unique key/alias for specifying the used data sources; contains the following information:
|
|
Array of directly used CDS views This attribute is optional and only added if used via INA protocol directly, not if used via OData service. |
|
Indicates whether the app is running offline; default is |
|
If an app has been generated from a template, this attribute is filled automatically by the generation tool:
|
|
Array of directly used open source libraries for documentation purposes; not used when open source libraries are used via SAPUI5 capsulation
|
|
Name of the provider that owns the application. Current supported enum value is |
|
Cross-navigation for specifying inbounds and outbounds
|
|
Relative URL as a reference to a file (naming convention is For a description of |
Attributes in the mandatory sap.ui namespace
Attribute |
Description |
---|---|
|
Specifies the UI technology; value is |
|
Contains object with app-specific icons, which are:
|
|
Mandatory; contains objects with device types on which the app is running, such as:
|
|
Indicates whether SAP Fiori launchpad shall render the target application utilizing the full width of the viewport (
|
The sap.ui5
namespace is aligned with the former concept of component metadata and contributes the following SAPUI5-specific attributes for the application descriptor, see Migrating from Component Metadata to Descriptor for more details.
Attributes in the sap.ui5 namespace
Attribute |
Description |
---|---|
|
Specifies additional CSS files are added to the head of the HTML page as a link tag. JavaScript files are loaded by the Two settings can be defined per resource:
|
|
Mandatory; specifies the external dependencies that are loaded by the SAPUI5 core during the initialization phase of the component and used afterwards. These are the following libraries or components:
For more information, see Descriptor Dependencies to Libraries and Components. |
|
Specifies the used components with the a unique key/alias. Contains the following:
For more information see:Using and Nesting Components |
|
Defines models that should be created or destroyed along the component's lifecycle. The key represents the model name. Use an empty string ("") for the default model.
|
|
Specifies the root view that shall be opened; can be the view name as a string for XML views, or the view configuration object with |
|
true, false (default), Enables the auto prefixing for the UIComponent for IDs of ManagedObjects (controls or elements) which are created in the context of the In former SAPUI5 releases this prefixing of the ID needed to be done with |
|
Possible values: |
|
Static configuration; specify the name-value pairs that you need in your component. |
|
Provides configuration parameters for route and router, see Routing and Navigation |
|
Used to extend another component.
|
|
Mandatory; contains an object with the content density modes that the app supports, see Content Densities
|
|
Map of URL locations keyed by a resource name prefix; only relative paths inside the component are allowed and no ".." characters This attribute is intended for actual sub-packages of the component only, meaning that it must not be used for the component namespace itself.
|
|
An optional attribute that only has to be provided if your project is a variant of an existing application. In this case the |
|
Determines whether the library contains an i18n resource. The value can be either a boolean, a string, or an object. A string value represents a bundle URL. Relative URLs are always resolved to the library origin. If no value is set, the default An object value can contain additional resource bundle configuration, e.g. terminologies and supported locales. For the supported features and for sample definitions, see the respective entries at Terminologies (without
|
|
Indicates whether the app is enabled for adaptation via SAPUI5 flexibility (for example, using stable IDs); possible values are For more information, see SAPUI5 Flexibility: Enable Your App for UI Adaptation. |
|
Specifies provided commands with a unique key/alias. Contains:
The name of the command that contains the |
|
Indicates whether SAPUI5 flexibility extension points are enabled for the corresponding application variant; possible values are: |
Attributes in the sap.platform.abap namespace
Attribute |
Description |
---|---|
|
Specifies the app's URI in the ABAP system, for example |
Attributes in the sap.platform.hcp namespace
Attribute |
Description |
---|---|
|
Specifies the URI inside the SAP Business Technology Platform HTML5 application; filled during deployment, default is "" |
|
Specifies the name of the provider account; filled during deployment |
|
Specifies the name of the deployed HTML5 application; filled during deployment |
|
Specifies the version of the deployed HTML5 application; filled during deployment |
Attributes in the sap.fiori namespace
Attribute |
Description |
---|---|
|
Array of registration IDs, for example, the SAP Fiori IDs for SAP Fiori apps |
|
Mandatory archetype of the app, possible values |
|
Indicates whether an app is an abstract (generic) app, which may not used directly, but needs to be specialized in the SAP Fiori launchpad content (as of 1.87) |
Attributes in the sap.card namespace
Attribute |
Description |
---|---|
|
Describes the card type; possible values are |
|
Specifies the card’s header area |
|
Specifies the type-dependent card content |
-
On root level (no namespace): Describes the descriptor format version (mandatory). Needs to be updated when migrating to a new descriptor format version, see Migrating from Component Metadata to Descriptor
-
Inside namespace: Describes the namespace format version (optional from version 1.38 on)
The newest flattened JSON schema is available on the SAP Open Source GitHub at https://github.com/sap/ui5-manifest/ under Apache-2.0 License. The UI5 manifest is part of JSON Schema Store to enable schema validation, code completion, and documentation in SAP Business Application Studio and Visual Studio Code.
Current version of the manifest.json
The following sample contains the full scope of all available descriptor properties. Some properties might not be applicable for all
manifest.json
variants. For example, thesap.ui5/models
section is not supported for library descriptors. For more information, see the above listing of namespaces and properties.
{
"_version": "1.65.0",
"start_url": "index.html",
"sap.app": {
"id": "sap.fiori.appName",
"type": "application",
"i18n": "i18n/i18n.properties",
"applicationVersion": {
"version": "1.2.2"
},
"embeds": ["mycomponent1", "subpath/mycomponent2"],
"embeddedBy": "../../",
"title": "{{title}}",
"subTitle": "{{subtitle}}",
"shortTitle": "{{shorttitle}}",
"description": "{{description}}",
"info": "{{info}}",
"tags": {
"keywords": ["{{keyWord1}}", "{{keyWord2}}"],
"technicalAttributes": ["ATTRIBUTE1", "ATTRIBUTE2"]
},
"ach": "PA-FIO",
"dataSources": {
"equipment": {
"uri": "/sap/opu/odata/snce/po_s_srv;v=2/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"annotations": ["equipmentanno"],
"localUri": "model/metadata.xml",
"maxAge": 360
}
},
"equipmentanno": {
"uri": "/sap/bc/bsp/sap/nscbn_anf_eam/bscbn_equipment_srv.anno.xml",
"type": "ODataAnnotation",
"settings": {
"localUri": "model/annotations.xml"
}
},
"cdsService": {
"uri": "/sap/bc/ina/ina1/sap/example_cds",
"type": "INA",
"settings": {
"localUri": "localService/metadata.xml",
"objects": {
"assets": {
"objectName": "SAPFinAssets",
"objectType": "cdsprojectionview",
"packageName": "package",
"schemaName": "schema"
},
"liabilities": {
"objectName": "SAPFinLiabilities",
"objectType": "cdsprojectionview"
}
}
}
}
},
"cdsViews": [
"VIEW1", "VIEW2"
],
"resources": "resources.json",
"offline": true,
"sourceTemplate": {
"id": "sap.ui.ui5-template-plugin.1worklist",
"version": "1.0.0",
"toolsId": "C12345678"
},
"destination": {
"name": "SAP_ERP_FIN"
},
"openSourceComponents": [{
"name": "D3.js",
"packagedWithMySelf": false
}],
"crossNavigation": {
"scopes": {
"sapSite": {
"value": "123"
}
},
"inbounds": {
"contactCreate": {
"semanticObject": "Contact",
"action": "create",
"icon": "sap-icon://add-contact",
"title": "{{title}}",
"subTitle": "{{subtitle}}",
"shortTitle": "{{shorttitle}}",
"info": "{{info}}",
"displayMode": "HeaderMode",
"indicatorDataSource": {
"dataSource": "equipment",
"path": "TaskListSet/$count",
"refresh": 5
},
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": false
},
"signature": {
"parameters": {
"id": {
"required": true
},
"ContactName": {
"defaultValue": {
"value": "anonymous"
},
"required": false,
"renameTo": "NAME2"
},
"Gender": {
"filter": {
"value": "(male)|(female)",
"format": "regexp"
},
"required": true,
"renameTo": "SEX",
"launcherValue": {
"value": "female",
"format": "plain"
}
}
},
"additionalParameters": "ignored"
}
},
"contactDisplay": {
"semanticObject": "Contact",
"action": "display",
"signature": {
"parameters": {
"id": {
"required": true
},
"Language": {
"filter": {
"value": "EN"
},
"required": true
},
"SomeValue": {
"filter": {
"value": "4711"
}
},
"GLAccount": {
"defaultValue": {
"value": "1000"
},
"filter": {
"value": "(1000)|(2000)",
"format": "regexp"
}
}
},
"additionalParameters": "allowed"
}
},
"contactDisplayAlt": {
"semanticObject": "Contact",
"action": "display",
"hideLauncher": true,
"signature": {
"parameters": {
"GLAccount": {
"defaultValue": {
"value": "UserDefault.GLAccount",
"format": "reference"
},
"filter": {
"value": "\\d+",
"format": "regexp"
},
"required": true
},
"SomePar": {
"filter": {
"value": "UserDefault.CostCenter",
"format": "reference"
},
"required": true
}
},
"additionalParameters": "allowed"
}
}
},
"outbounds": {
"addressDisplay": {
"semanticObject": "Address",
"action": "display",
"additionalParameters": "ignored",
"parameters": {
"CompanyName": {
"value": {
"value": "companyName",
"format": "plain"
},
"required": true
}
}
},
"companyDisplay": {
"semanticObject": "Company",
"action": "display",
"additionalParameters": "allowed",
"parameters": {
"CompanyName": {
"value": {
"value": "companyName",
"format": "plain"
},
"required": true
}
}
}
}
}
},
"sap.ui": {
"technology": "UI5",
"icons": {
"icon": "sap-icon://add-contact",
"favIcon": "icon/F1373_Approve_Purchase_Orders.ico",
"phone": "icon/launchicon/57_iPhone_Desktop_Launch.png",
"phone@2": "icon/launchicon/114_iPhone-Retina_Web_Clip.png",
"tablet": "icon/launchicon/72_iPad_Desktop_Launch.png",
"tablet@2": "icon/launchicon/144_iPad_Retina_Web_Clip.png"
},
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": false
},
"fullWidth": true
},
"sap.ui5": {
"resources": {
"css": [{
"uri": "component.css",
"id": "componentcss"
}]
},
"dependencies": {
"minUI5Version": "1.126.0",
"libs": {
"sap.m": {
"minVersion": "1.34.0"
},
"sap.ui.commons": {
"minVersion": "1.34.0",
"lazy": true
}
},
"components": {
"sap.ui.app.other": {
"minVersion": "1.1.0",
"lazy": true
}
}
},
"componentUsages": {
"myusage": {
"name": "my.used",
"lazy": false,
"settings": {},
"componentData": {}
}
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"uri": "i18n/i18n.properties",
"settings": {
"enhanceWith": [{
"bundleUrl": "i18n/i18n.properties",
"bundleUrlRelativeTo": "manifest"
}]
}
},
"equipment": {
"preload": true,
"dataSource": "equipment",
"settings": {}
}
},
"rootView": {
"viewName": "sap.ui.test.view.Main",
"id" : "rootView",
"async": true,
"type": "XML"
},
"handleValidation": true,
"config": {
},
"routing": {
},
"extends": {
"component": "sap.fiori.otherApp",
"minVersion": "0.8.15",
"extensions": {}
},
"contentDensities": {
"compact": true,
"cozy": false
},
"resourceRoots": {
".myname": "./myname"
},
"componentName": "sap.fiori.appName",
"autoPrefixId": true,
"appVariantId": "hcm.leaverequest.oil",
"appVariantIdHierarchy": [
{"layer": "VENDOR", "appVariantId": "abc", "version": "1.0.0"}
],
"services": {
"myLocalServiceAlias": {
"factoryName": "sap.ushell.LaunchPadService",
"optional": true
}
},
"library": {
"i18n": true
},
"flexEnabled": true,
"flexExtensionPointEnabled": true,
"commands": {
"Save": {
"shortcut": "Ctrl+S"
}
}
},
"sap.platform.abap": {
"uri": "/sap/bc/ui5_ui5/sap/appName",
"uriNwbc": ""
},
"sap.platform.hcp": {
"uri": "",
"uriNwbc": "",
"providerAccount": "fiori",
"appName": "sapfioriappName",
"appVersion": "1.0.0",
"multiVersionApp": true
},
"sap.fiori": {
"registrationIds": [
"F1234"
],
"archeType": "transactional",
"abstract": false
},
"sap.mobile": {},
"sap.flp": {},
"sap.ui.generic.app": {},
"sap.ovp": {},
"sap.ui.smartbusiness.app": {},
"sap.wda": {},
"sap.gui": {},
"sap.cloud.portal": {},
"sap.apf": {},
"sap.platform.cf": {},
"sap.copilot": {},
"sap.map": {},
"sap.url": {},
"sap.platform.sfsf": {},
"sap.wcf": {},
"sap.cloud": {},
"sap.integration": {},
"sap.platform.mobilecards": {},
"sap.artifact": {},
"sap.package": {},
"sap.insights": {},
"sap.bpa.task": {},
"sap.cards.ap": {},
"sap.fe": {},
"sap.card": {}
}
For the following namespaces, the indicated teams are responsible:
-
sap.mobile - in Mobile responsibility
-
sap.flp - in SAP Fiori launchpad responsibility
-
sap.ui.generic.app - in SAP Fiori elements responsibility
-
sap.ovp - in Overview Page responsibility
-
sap.ui.smartbusiness.app - in Smart Business responsibility
-
sap.wda - in Web Dynpro ABAP responsibility
-
sap.gui - in SAP GUI responsibility
-
sap.cloud.portal - in SAP BTP responsibility
-
sap.apf - in Analysis Path Framework responsibility
-
sap.platform.cf - in Cloud Foundry/XSA responsibility
-
sap.copilot - in Copilot responsibility
-
sap.map - in SAP Visual Business responsibility
-
sap.url - in SAP Fiori launchpad responsibility
-
sap.platform.sfsf - for SAP SuccessFactors specific attributes
-
sap.wcf - for WCF Application specific attributes
-
sap.cloud - for SAP BTP-specific attributes
-
sap.integration - in Application Integration responsibility
-
sap.platform.mobilecards - in Mobile Cards responsibility
-
sap.artifact - in SAP Work Zone responsibility
-
sap.package - in SAP Work Zone responsibility
-
sap.insights - for My Insights inside My Home
-
sap.bpa.task - in SAP Build Process Automation responsibility
-
sap.fe - in SAP Fiori elements responsibility
-
sap.card - in SAPUI5 responsibility
-
sap.cards.ap - in Cards for signature micro experience responsibility
The component declares the existence of the application descriptor by specifying manifest: "json"
in the component metadata. Setting this flag makes the component load the manifest.json
file and read the relevant entries for SAPUI5. This metadata is used to define the dependencies that need to be loaded in order to start the component. The following code snippet shows how to add the manifest link:
sap.ui.define([
"sap/ui/core/UIComponent"
], (UIComponent) => {
"use strict";
return UIComponent.extend("my.sample.Component", {
metadata : {
manifest: "json",
interfaces: [
"sap.ui.core.IAsyncContentCreation"
]
}
});
});
At runtime, the manifest content can be accessed from the component via the following sap.ui.core.Component
APIs:
// Given: oComponent === instance of sap.ui.core.Component (e.g. returned by sap.ui.core.mvc.Controller#getOwnerComponent)
oComponent.getManifest(); // returns reference to the entire manifest object if it exists; otherwise returns null
oComponent.getManifestEntry("sap.app"); // returns reference to the configuration section of the manifest
oComponent.getManifestEntry("/sap.ui5/dependencies/libs"); // returns reference or value of the manifest configuration by path; the syntax must start with a slash