Принцип работы

1. При старте все конфигарационные файлы объединяются в один, пользовательский конфиг переопределяет системный.

2. Пакеты обрабатываются по URL вида /plugin/name, где plugin - один из плагинов hard, name - произвольное название объекта плагина. Одновременно может использоваться несколько объектов одного плагина. Каждый объект плагин имеет собственные настройки (определенные в plugins.plugin.name). Активные объекты плагинов определяются в конфигурационном файле default.yml в ключе enabled_plugins. Например:

enabled_plugins: [base/main, base/test, dhcp/main]

3. Перед обработкой запроса непосредственно объектом плагина, выполняется последовательность фильтров определенных в plugins.plugin.name.call_stack в прямом порядке. После завершения действий объекта плагина, выполняются те же фильтры из call_stack, но в обратном порядке. Таким образом, с помощью добавления пользовательского фильтра можно изменять данные как запроса, так и ответа приложения.