[IMPLEMENTED] Add Plugin System


#1

e.g.: https://github.com/awesome-inc/NuPlug

But that would take the place of the “sample schemas” – giving people the ability to deploy, say, a CRM skeleton.
Also a way to easily add hooks and/or internal processing.

Obviously an architectural challenge :slight_smile:


#2

Yes, it is planned. For me a requirement would be that it works with docker, e.g. by containers as plugins or so.


#3

This feature is in progress at the moment.

it is based on the following library: https://github.com/natemcmaster/DotNetCorePlugins

The rule actions are implemented as a plugin system, the webhook plugin demonstrates how it works: https://github.com/Squidex/squidex/blob/feature/plugins/extensions/Squidex.Extensions/Actions/Webhook/WebhookPlugin.cs

You can just register any service to the service locator and also override some default behaviors like asset store. I will prove a sample implementation for an in memory asset store. The most common extension points are also described in the docs already: https://docs.squidex.io/architecture/02-extensions

To make full usage of the UI must become extensible step by step as well. As a first step I auto generate the UI for the rule actions based on the metadata of the properties and the class:

To load a plugin you have to add it to the configuration: https://github.com/Squidex/squidex/blob/feature/plugins/src/Squidex/appsettings.json#L24

You can check out the feature/plugins path: https://github.com/Squidex/squidex/tree/feature/plugins


Can create a rule for RabbitMQ?
#4