{"ref":"capability:launchpad-plugins","page":"/capabilities/launchpad-plugins","json":"/capabilities/launchpad-plugins.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"launchpad-plugins","name":"Launchpad plugins","domain":"ui-and-frontend-bridge","ecosystems":["ui5","abap","btp"],"universal":false,"description":"Extending an application launchpad’s shell rather than an individual app: adding header buttons, user-menu entries, frame areas or background behaviour shared across the apps it hosts. A development sandbox for launching an app is a separate concern.","short":"Extending an application launchpad's shell","core_coverage":{"state":"core-and-community","assessed_at":"2026-09-13","what_core_does":"SAPUI5's `sap.ushell.services.Extension` service, since 1.120, creates shell header items and user actions and shows them on the home page or for all apps; before it, a plugin added them through `sap.ushell.renderers.fiori2.Renderer`.","where_it_stops":"At SAPUI5. `sap.ushell` is not part of OpenUI5, so a plugin cannot be built against or run on the open-source distribution.","sources":[{"url":"https://ui5.sap.com/test-resources/sap/ushell/designtime/apiref/api.json","title":"SAPUI5 API reference (sap.ushell) — sap.ushell.services.Extension","checked":"2026-09-13","quote":"The Unified Shell's Extension service. Allows adding extensions on the user's home page."},{"url":"https://github.com/UI5/openui5/tree/master/src","title":"UI5/openui5 — src (libraries in the OpenUI5 distribution)","checked":"2026-09-13"},{"url":"https://github.com/ui5-community/generator-ui5-ts-flp-plugin","title":"ui5-community/generator-ui5-ts-flp-plugin — README","checked":"2026-09-13","quote":"They are not available in OpenUI5, because sap.ushell is not part of the OpenUI5 distribution."}],"relationship":"unassessed","community_adds":"Scaffolding for the plugin component: Easy-UI5 generators from [UI5 Community](actor:ui5-community), one for TypeScript on the Extension API such as [generator-ui5-ts-flp-plugin](artifact:ui5-community-generator-ui5-ts-flp-plugin). SAPUI5 itself ships the services a plugin calls."},"coverage_by_ecosystem":{"abap":{"state":"core-and-community","assessed_at":"2026-09-13","relationship":"unassessed","what_core_does":"On premise, a plugin deployed as a UI5 application is activated per role through a target mapping with the intent Shell-plugin in a launchpad catalog, assigned to a role in PFCG. In the SAP BTP ABAP environment it is deployed as a Fiori application whose manifest sets `sap.flp` type `plugin`, and reached through an IAM app and a business catalog.","where_it_stops":"Role-based activation on premise only works with the launchpad's dynamic page processing on the ICF node /sap/bc/ui2/flp.","sources":[{"url":"https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/a9/0ed59d22bb46898a2ec7a7dac215ef/content.htm","title":"SAP Help — Activating Plug-Ins on the ABAP Platform","checked":"2026-09-13","quote":"On the ABAP platform, plug-ins can be activated via user-role assignment."},{"url":"https://raw.githubusercontent.com/sap-tutorials/abap-core-development/main/tutorials/abap-environment-shell-plugin/abap-environment-shell-plugin.md","title":"SAP Tutorials — Implement a Custom Shell Plug-in in the SAP BTP ABAP Environment","checked":"2026-09-13","quote":"How to create a Business Catalog and Business Role to regulate access to the SAP Fiori Application."}],"note":"The plugin itself is UI5 code. The system ships the activation steps above, and the community adds scaffolding for the plugin, such as [generator-ui5-ts-flp-plugin](artifact:ui5-community-generator-ui5-ts-flp-plugin)."},"btp":{"state":"core-and-community","assessed_at":"2026-09-13","relationship":"unassessed","what_core_does":"SAP Build Work Zone loads shell plugins. In the advanced edition a plugin is an HTML5 app in the MTA whose manifest sets `\"type\": \"plugin\"` and hides its launcher, and the runtime loads and initialises it when the site starts; SAP's BTP documentation points to the standard edition's page for integrating apps and shell plugins.","sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-build-work-zone-advanced/main/docs/add-a-shell-plugin-1becea7.md","title":"SAP Build Work Zone, advanced edition — Add a Shell Plugin","checked":"2026-09-13","quote":"Plugins are automatically loaded and initialized by the runtime when the site is started."},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-cloud-platform/main/docs/30-development/sap-fiori-applications-in-the-cloud-foundry-environment-c954634.md","title":"SAP BTP documentation — SAP Fiori Applications in the Cloud Foundry Environment","checked":"2026-09-13","quote":"Integrate Apps and Shell Plugins"}],"note":"The plugin itself is UI5 code. [SAP Build Work Zone, standard edition](artifact:btp-build-work-zone-standard) loads it into a business site, and the community adds scaffolding for the plugin, such as [generator-ui5-ts-flp-plugin](artifact:ui5-community-generator-ui5-ts-flp-plugin). The standard edition's own documentation page did not load as text; its support rests on SAP's BTP documentation linking to it by that title."}},"framing_by_ecosystem":{"ui5":{"description":"A component with no views that the shell loads once at startup and that works through shell services such as `Extension`, `FrameBoundExtension`, `AppLifeCycle` and `UserInfo` instead of rendering an app. This extends the SAP Fiori launchpad for all hosted apps, including SAP apps. It differs from a development sandbox such as [cds-launchpad-plugin](artifact:geert-janklaps-cds-launchpad-plugin)."},"abap":{"description":"Here the question is activation: which launchpad catalog and role on premise, or which business catalog in the ABAP environment, makes the shell load the plugin for a given user."},"btp":{"description":"On BTP the plugin is an HTML5 app in the site's content, assigned to a role in SAP Build Work Zone and loaded when the site starts, with no tile."}},"coverage_by_flavor":{"abap-cloud":{"state":"core-only","assessed_at":"2026-09-14","what_core_does":"In the SAP BTP ABAP environment, a shell plugin is a SAPUI5 Freestyle application whose manifest sets `sap.flp` to type `plugin`; deploying it creates a Launchpad App Descriptor item and an IAM app, assigned to a business catalog and a business role that puts the plugin in a user's Settings dialog on the environment's own launchpad. SAP's tutorial states the same steps apply to SAP S/4HANA Cloud.","where_it_stops":"SAP Fiori tools has no dedicated shell-plugin project type in the SAP BTP ABAP environment: the tutorial starts from an ordinary Fiori Freestyle application and repurposes its manifest, since components are not yet fully supported by the tooling.","sources":[{"url":"https://developers.sap.com/tutorials/abap-environment-shell-plugin.html","title":"SAP Tutorials — Implement a Custom Shell Plug-in in the SAP BTP ABAP Environment","checked":"2026-09-14","quote":"This tutorial was written for SAP BTP ABAP Environment. However, you should be able to use it in SAP S/4HANA Cloud Environment in the same way."},{"url":"https://github.com/sap-tutorials/abap-core-development/blob/main/tutorials/abap-environment-shell-plugin/abap-environment-shell-plugin.md","title":"sap-tutorials/abap-core-development — abap-environment-shell-plugin.md","checked":"2026-09-14","quote":"As components are not fully supported yet by SAP Fiori tools but are structurally very similar to SAP Fiori applications, you can make use of some SAP Fiori tools for applications."}],"note":"The plugin itself is UI5 code; core-only reads what SAP ships for deploying and activating one in the SAP BTP ABAP environment."},"web-components":{"state":"not-applicable","assessed_at":"2026-09-14","note":"A shell plugin is an SAPUI5 component that sap.ushell loads through its Extension service, and sap.ushell is not part of the OpenUI5 distribution. UI5 Web Components' own README states they are 'not built on top of' UI5, calling them independent custom elements rather than an application, with UI5 itself remaining 'the best choice' for building one — so there is no SAPUI5 component here for the shell to load.","sources":[{"url":"https://github.com/SAP/ui5-webcomponents/blob/main/README.md","title":"SAP/ui5-webcomponents — README","checked":"2026-09-14","quote":"UI5 Web Components… are not built on top of UI5, but rather lightweight and independent UI elements. … UI5 remains what it is: the best choice for… building complete enterprise-ready and responsive web applications."},{"url":"https://github.com/ui5-community/generator-ui5-ts-flp-plugin","title":"ui5-community/generator-ui5-ts-flp-plugin — README","checked":"2026-09-14","quote":"They are not available in OpenUI5, because sap.ushell is not part of the OpenUI5 distribution."}]}},"history":[{"date":"2026-09-14","field":"coverage_by_flavor.abap-cloud","from":null,"to":"core-only","reason":"ABAP Cloud narrows the ABAP door's activation coverage: SAP's own tutorial documents the SAP BTP ABAP environment's manifest-based shell-plugin mechanism (IAM app, business catalog, business role), and no ABAP-ecosystem artifact in the corpus states the abap-cloud flavor."},{"date":"2026-09-14","field":"coverage_by_flavor.web-components","from":null,"to":"not-applicable","reason":"A launchpad plugin is an SAPUI5 component sap.ushell loads through its Extension service; UI5 Web Components' own README states the library is not built on top of UI5 and names UI5 itself as what remains the choice for a complete application, and none of the three UI5-door artifacts behind this capability state the web-components flavor."},{"date":"2026-10-17","field":"description","from":"Extending the SAP Fiori launchpad itself rather than one app in it: a component the shell loads at startup that adds header buttons, user menu entries or frame areas, or runs with no UI, for every app the launchpad hosts, SAP's own included. Distinct from a sandbox launchpad for running apps during development, which is what [cds-launchpad-plugin](artifact:geert-janklaps-cds-launchpad-plugin) is.","to":"Extending an application launchpad’s shell rather than an individual app: adding header buttons, user-menu entries, frame areas or background behaviour shared across the apps it hosts. A development sandbox for launching an app is a separate concern.","reason":"Keep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.ui5. Maintainer-requested scope audit."},{"date":"2026-10-26","field":"core_coverage.community_adds","from":null,"to":"Names the Easy-UI5 generators from UI5 Community; state stays core-and-community","reason":"Reassessed against the graph (check:capabilities): the core is SAPUI5's sourced Extension service and community generators provide scaffolding; community_adds says what they add."},{"date":"2026-10-26","field":"coverage_by_ecosystem.abap.state, coverage_by_ecosystem.abap.note","from":"core-only; The plugin itself is UI5 code, so no provider is an ABAP artifact; core-only reads what the system ships for activating one.","to":"core-and-community; the note names the generator that serves the ABAP door","reason":"Reassessed against the graph (check:capabilities): the sourced core activation steps stay and a community generator now lists the ABAP door in serves_ecosystems; the absence claim in the note is removed."},{"date":"2026-10-26","field":"coverage_by_ecosystem.btp.state, coverage_by_ecosystem.btp.note","from":"core-only; The plugin itself is UI5 code, so no provider is a BTP artifact. ...","to":"core-and-community; the note links SAP Build Work Zone, standard edition and the community generator","reason":"Reassessed against the graph (check:capabilities): SAP Build Work Zone, standard edition (sap-official) and a community generator serving the BTP door now provide this; the absence claim is removed."},{"date":"2026-10-26","field":"coverage_by_flavor.abap-cloud.note, coverage_by_flavor.web-components.note","from":"...so no ABAP-ecosystem artifact provides it...; ...None of the three artifacts behind this capability state the web-components flavor.","to":"The plugin itself is UI5 code; core-only reads what SAP ships...; the count sentence removed","reason":"Reassessed against the graph (check:capabilities): removed an absence claim and a count of providers (WRITING §3); the flavor states are unchanged."}],"drafted_with_ai":true},"sap_delivery":{"door":"ui5","all":null,"by_flavor":{"freestyle":null,"fiori-elements":null,"web-components":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:ui5-community-generator-ui5-flp-plugin","name":"generator-ui5-flp-plugin","json":"/artifacts/ui5-community-generator-ui5-flp-plugin.json","ecosystem":"ui5","origin_ring":"community-org"},{"ref":"artifact:ui5-community-generator-ui5-ts-flp-plugin","name":"generator-ui5-ts-flp-plugin","json":"/artifacts/ui5-community-generator-ui5-ts-flp-plugin.json","ecosystem":"ui5","origin_ring":"community-org"},{"ref":"artifact:btp-build-work-zone-standard","name":"SAP Build Work Zone, standard edition","json":"/artifacts/btp-build-work-zone-standard.json","ecosystem":"btp","origin_ring":"sap-official"}],"samples":[{"ref":"artifact:mariokernich-fiori-fullscreen-plugin","name":"fiori-fullscreen-plugin","json":"/artifacts/mariokernich-fiori-fullscreen-plugin.json"}],"explained_by":[{"ref":"content:understanding-and-developing-fiori-plugins-with-extension-api-typescript","name":"Understanding and Developing Fiori Plugins with Extension API & TypeScript","json":"/content/understanding-and-developing-fiori-plugins-with-extension-api-typescript.json"},{"ref":"content:step-by-step-guide-to-display-system-details-on-sap-fiori-launchpad-shell","name":"Step-by-Step Guide to Display System Details on SAP Fiori Launchpad Shell","json":"/content/step-by-step-guide-to-display-system-details-on-sap-fiori-launchpad-shell.json"}],"normative_context":[]}}