{"ref":"content:understanding-and-developing-fiori-plugins-with-extension-api-typescript","page":"/content/understanding-and-developing-fiori-plugins-with-extension-api-typescript","json":"/content/understanding-and-developing-fiori-plugins-with-extension-api-typescript.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"understanding-and-developing-fiori-plugins-with-extension-api-typescript","title":"Understanding and Developing Fiori Plugins with Extension API & TypeScript","url":"https://kernich.de/posts/developing-fiori-launchpad-plugins-with-typescript/","content_type":"blog","explains":[{"ref":"capability:launchpad-plugins","applies_to":{"ecosystems":["abap","btp","ui5"]}},"artifact:mariokernich-fiori-fullscreen-plugin"],"summary":"Describes a launchpad plugin as a UI5 component without views that the shell loads for every app, SAPUI5 only, and compares extending the shell through the renderer with the `Extension` service from 1.120 and `FrameBoundExtension` from 1.124, down to the placement options each allows. It builds [fiori-fullscreen-plugin](artifact:mariokernich-fiori-fullscreen-plugin) as the sample, and ends with activation: globally through /UI2/FLP_CONF_DEF and /UI2/FLP_CUS_CONF or per role through a Shell-plugin target mapping on an ABAP launchpad, and as an HTML5 app assigned to a role in SAP Build Work Zone.","short":"Building Fiori launchpad plugins with the Extension API in TypeScript","authors":["actor:mariokernich"],"published":"2026-06-15","drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"published_on":"source:kernich","history":[{"date":"2026-10-17","field":"explains","from":null,"to":"applies_to on capability:launchpad-plugins","reason":"Door scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md)."}]},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"good","evidence":"published 4 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2026-06-15"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":null,"unit":"views"},{"value":null,"unit":"comments"},{"value":null,"unit":"likes"}]},"signals":null,"series":null,"edges":{"authors":[{"ref":"actor:mariokernich","name":"Mario Kernich","json":"/actors/mariokernich.json"}]}}