Data App features come from plugins
Queries, exports, lineage and pictures each come from a plugin the host installs, and a page checks for one with `Anfra.plugins.has()`.
Everything a Data App reaches beyond itself comes from a plugin: core runs queries, export adds query.export(), lineage adds Anfra.lineage(), and render adds Anfra.render(). anfra serve installs them all, but another host may install fewer, so check before you offer one:
if (Anfra.plugins.has('export')) showDownloadButton()A plugin's API is undefined where it isn't installed. Anfra.features still answers, but is deprecated: replace it with Anfra.plugins.has().
For hosts
If you host Data Apps in your own app with @holistics/anfra-sdk, createHost(...).mount(...) replaces mountDataApp and serveBridge, and the corePlugin replaces the Backend option. You can write plugins of your own, with build and testing entrypoints in the SDK.