Runtime Model
The SDK has two runtimes and one host boundary.Backend Runtime
This is where your plugin class runs. Use it for:init()- registering handlers
- storage access
- logging
- diagnostics
- backend orchestration
Iframe UI Runtime
This is where your UI executes afterrender() output is consumed by FDO.
Use it for:
- DOM work
- event listeners
- UI feedback
- host-injected helpers and libraries
- calling your backend through
window.createBackendReq(...)
Host Boundary
The host owns:- iframe sandboxing
- capability grants
- privileged action execution
- network and filesystem boundaries
- session/request infrastructure for connector patterns
What This Means In Practice
- backend code should not depend on iframe-only libraries
- iframe UI should not assume direct privileged host access
- privileged work should go through documented host-mediated contracts
- provider-specific semantics should stay in plugin code unless the host contract explicitly owns them
Related Reading
docs/ARCHITECTURE.mddocs/RENDER_RUNTIME_CONTRACT.mddocs/SAFE_PLUGIN_AUTHORING.md