Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 2.24 KB

PluginDefinition.md

File metadata and controls

38 lines (30 loc) · 2.24 KB

Plugin Definition

Define custom plugins as separate packages

Modular Design: Ensure each plugin is self-contained and follows a modular design pattern. This will facilitate easier maintenance, updates, and scaling.

  • Dependency Management: Use a robust dependency management system to handle plugin dependencies.

  • Define a base structure, including abstract classes or interfaces that custom plugins must inherit from and implement their behaviors

  • Core Interfaces and Abstract Classes: Define core interfaces and abstract classes that enforce a consistent structure and behavior across all plugins.

  • Plugin Lifecycle Management: Define standard methods for initializing, starting, stopping, and destroying plugins to manage their lifecycle effectively.

  • Error Handling: Incorporate error handling mechanisms within the base structure to ensure plugins can gracefully handle failures.

  • Define and upload custom plugins to Fluent CMS and load them dynamically

  • Plugin Registration: Provide a mechanism for registering plugins with the CMS, including metadata such as name, version, author, and dependencies.

  • Dynamic Loading: Implement dynamic loading and unloading of plugins to allow for real-time updates and changes without requiring a system restart.

  • Security: Implement security checks to verify the integrity and authenticity of plugins before loading them.

Scenarios

  • Examples of custom plugins: Payment Gateway Connector, Dynamic Navigation, Products Catalog, etc.
  • Payment Gateway Connector: Integrate with various payment gateways (e.g., PayPal, Stripe) to facilitate online transactions.
  • Dynamic Nav: Allow dynamic generation and management of navigation menus based on user roles and permissions.
  • Products Catalog: Provide a flexible catalog system for managing products, categories, and attributes.

Proposal

  • Each plugin has two major parts: frontend (UI features) and backend (serverside) functionalities

Features

  • User should be able to define custom designed plugins in admin panel by uploading a zip file
  • User should be able to update a plugin definition to latest version by uploading a zip file
  • User should be able to delete a plugin definition

Properties

  • Name
  • Description
  • Autor
  • Version
  • ViewTypes/Widgets
  • Stylesheets