# Frontend Plugin System (Discovery, Sandbox, Extension Slots) ## Module Web ## Status IMPLEMENTED ## Description Frontend plugin architecture with plugin discovery service, dynamic module loader, sandboxed execution, a registry for managing plugin lifecycle, tenant-scoped plugin configuration, navigation integration for plugin-contributed menu items, and an extension slot component allowing plugins to inject UI at designated extension points. ## Implementation Details - **Feature directory**: `src/Web/StellaOps.Web/src/app/core/plugins/` - **Components**: - `extension-slot` (`src/Web/StellaOps.Web/src/app/core/plugins/extension-slots/extension-slot.component.ts`) - **Services**: - `plugin-discovery` (`src/Web/StellaOps.Web/src/app/core/plugins/discovery/plugin-discovery.service.ts`) - `extension-slot` (`src/Web/StellaOps.Web/src/app/core/plugins/extension-slots/extension-slot.service.ts`) - `plugin-loader` (`src/Web/StellaOps.Web/src/app/core/plugins/loader/plugin-loader.service.ts`) - `plugin-manifest-loader` (`src/Web/StellaOps.Web/src/app/core/plugins/loader/plugin-manifest-loader.service.ts`) - `navigation-plugin` (`src/Web/StellaOps.Web/src/app/core/plugins/navigation/navigation-plugin.service.ts`) - `plugin-registry` (`src/Web/StellaOps.Web/src/app/core/plugins/registry/plugin-registry.service.ts`) - `plugin-sandbox` (`src/Web/StellaOps.Web/src/app/core/plugins/sandbox/plugin-sandbox.service.ts`) - `tenant-plugin-config` (`src/Web/StellaOps.Web/src/app/core/plugins/tenant/tenant-plugin-config.service.ts`) - **Models**: - `src/Web/StellaOps.Web/src/app/core/plugins/models/extension-slot.model.ts` - `src/Web/StellaOps.Web/src/app/core/plugins/models/plugin-lifecycle.model.ts` - `src/Web/StellaOps.Web/src/app/core/plugins/models/plugin-manifest.model.ts` - **Source**: Feature matrix scan ## E2E Test Plan - **Setup**: - [ ] Log in with a user that has appropriate permissions - [ ] Navigate to the relevant page/section where this feature appears - [ ] Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed) - **Core verification**: - [ ] Verify the component renders correctly with sample data - [ ] Verify interactive elements respond to user input - [ ] Verify data is fetched and displayed from the correct API endpoints - **Edge cases**: - [ ] Verify graceful handling when backend API is unavailable (error state) - [ ] Verify responsive layout at different viewport sizes - [ ] Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes)