2.0 KiB
Shared runtime source candidate (SDK >=0.7.4)
This source declares sharedRuntime: shared-runtime-v1 and componentModel: stateless-v1.
It is source-reviewed for the multi-tenant contract; it is not certified and makes no
claim of live tenant acceptance.
- Configuration is read per invocation with
self.get_config()/self.get_plugin_config(). HelloPlugin declares no config items (spec.config: []), so the shared worker never reads tenant settings; nothing from an installation is copied onto the plugin, the components or module globals. initialize()is empty, so a shared worker is never initialized with another installation's settings.
Per invocation
GetWeatherAlerts.callbuilds the NWS URL from its arguments and creates a freshhttpx.AsyncClientfor every request (components/tools/get_weather_alerts.py); no client, response or parameter is cached on the shared tool object.DefaultEventListener's handler only assignsevent_context.event.user_message_alteron the event it received; it keeps no state across events.Infobuilds its reply from theExecuteContextof the current command invocation.- No SDK process-global settings are modified.
Identity
No upstream/tenant identity is derived: the plugin exposes no per-user vendor state and calls no identity-scoped Host API.
Tests
tests/test_shared_runtime.py drives one plugin/component object graph across two
distinct InstallationBinding values with the real SDK bind_invocation(...) and
InstallationBinding, and asserts (a) the shared tool resolves the invocation config and
produces installation-independent results while retaining no attributes, and (b) the
listener mutates only the per-event context. HTTP replies are simulated; no live network
or vendor account is used.
Known limits
spec.configis empty: there are no installation settings to resolve, and the shared and dedicated paths behave identically.- No claim of certification; independent review and two-Workspace invocation acceptance are still required.