steedos-plugin

Automates startup loading of NestJS or Moleculer plugins from external packages configured via B6_PLUGIN_MODULES and B6_PLUGIN_PACKAGES.

1.6k|413|Updated Mar 4, 2019
One-click install
npx skills add https://github.com/steedos/steedos-platform --skill steedos-plugin
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: steedos-plugin
Source: https://github.com/steedos/steedos-platform/tree/main/skills/steedos-plugin
Command: npx skills add https://github.com/steedos/steedos-platform --skill steedos-plugin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Dynamic plugin loading at startup to extend applications with optional, external packages without embedding them in the core. This approach lets teams enable features on demand and maintain a lean base.

Core Features & Use Cases

  • Environment-driven plugin selection using B6_PLUGIN_MODULES and B6_PLUGIN_PACKAGES.
  • Automatic installation of plugins into a plugins/ directory, including support for private registries via B6_PLUGIN_NPMRC.
  • Supports both NestJS Module Plugins and Moleculer Service Plugins for flexible runtimes.
  • Safe startup with lifecycle management, re-try on failure, and clear plugin state transitions.

Quick Start

Configure B6_PLUGIN_MODULES and/or B6_PLUGIN_PACKAGES and restart the application to load plugins.

Frequently Asked Questions about steedos-plugin

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I load external plugins dynamically at Node.js startup?

To load external plugins dynamically at startup, configure B6_PLUGIN_MODULES or B6_PLUGIN_PACKAGES environment variables and restart the application to automatically resolve, install, and load external packages.

Does dynamic plugin loading work with both NestJS and Moleculer runtimes?

Yes, dynamic plugin loading supports both NestJS Module Plugins and Moleculer Service Plugins, allowing you to extend applications built on either framework with external packages at runtime.

How do I configure private npm registries for installing dynamic plugins?

You configure private npm registries for dynamic plugin installation by setting the B6_PLUGIN_NPMRC environment variable, which updates npm configuration before resolving and installing plugin dependencies.

What is the best way to extend a Node application with optional features without modifying the core?

Environment-driven plugin selection enables extending a Node application with optional features by loading external packages at startup, letting teams enable features on demand while maintaining a lean base.

Why does dynamic plugin loading fail on application startup?

Dynamic plugin loading failures during startup are handled with lifecycle management that includes re-try on failure and clear plugin state transitions, ensuring safe application boot even when external packages encounter issues.

Can I auto-install plugins from a local directory instead of using npm packages?

Yes, you can auto-install plugins from a local plugins directory, while also using B6_PLUGIN_PACKAGES to specify external npm packages, giving you flexible options for dynamic runtime extension.