{"slug":"platform/32-plugin-runtime","title":"32 — Plugin Runtime","section":"platform","sectionLabel":"Platform","status":"unclassified","type":"document","path":"platform/32-plugin-runtime.mdx","bytes":2398,"description":null,"updated":null,"source":"integratewise/Integratewise-docs-wiki","content":"\n> **Extracted from:** IntegrateWise Platform Specification Suite\n> **Region:** third_region\n> **Original line:** 3496\n> **Lines:** 51 | **Chars:** 2,105\n> **Status:** Raw extraction — requires review and canonicalization\n\n32 — Plugin Runtime\n32.1 Pipeline (preserves user’s ASCII)\nCopyPlugin\n↓\nValidation\n↓\nSandbox\n↓\nPermissions\n↓\nResources\n↓\nCapability Registration\n↓\nLifecycle\n32.2 Responsibilities\nHost third-party Plugin bundles (WASM or JS-in-Worker) supplied through Marketplace (13).\nValidate, sandbox, assign permissions, allocate resources, register capabilities, manage lifecycle.\n32.3 Plugin kinds\nconnector_plugin, capability_plugin, workflow_plugin, persona_kit_plugin, design_pack_plugin.\n32.4 Inputs\nListingInstalled (Community Agent kind; 23.2).\nAdmin overrides.\n32.5 Outputs\nRegistered Capabilities (05), Workflows (11), Persona Kits (06).\n32.6 Events produced\nPluginValidated, PluginSandboxed, PluginPermissionsGranted, PluginRegistered, PluginResourcesAllocated, PluginLifecycleEvent, PluginUninstalled, PluginQuarantined.\n32.7 Events consumed\nListingInstalled, ListingUpgradeStarted, CapabilityRegistered.\n32.8 APIs\nPOST /plugins, POST /plugins/{plg_id}/validate, POST /plugins/{plg_id}/sandbox, GET /plugins/{plg_id}/health, POST /plugins/{plg_id}/permissions, POST /plugins/{plg_id}/uninstall.\n32.9 State transitions\nuploaded → validating → validated → sandboxed → permissions_assigned → resources_allocated → installed → upgrading → deprecated → uninstalled → quarantined.\n\n32.10 Sandbox\nWASM execution in Worker with capability allowlist enforced at runtime.\nResource budgets: CPU ms, memory bytes, network egress URLs (allowlist).\n32.11 Permissions\nPlugin declares permissions[] (capabilities + data scopes + network egress hosts).\nValidation rule: declared permissions ⊨ advertised Marketplace scopes.\n32.12 Resources\nQuotas per plugin per tenant; default ceilings in 29 Billing.\nPer-plugin token meter for cost attribution.\n32.13 Lifecycle ownership\nPlugin may declare its own lifecycle adapter, but bounded by Plugin Runtime contract; cannot terminate itself.\n32.14 Failure handling\nCrashed plugin → auto-restart ≤ 3; quarantine after.\nResource ceiling breach → throttle + admin notify.\n32.15 Extension points\nNew plugin kinds via Plugin SDK (17).\nCustom sandbox capability types SANDBOX_CAP(name).\n"}