1
0
Fork 0

Introduce plugin initialization phase and consolidate config handling

- Added `initialize_plugins` method to `PluginManager` for requesting and processing file system resources during plugin initialization.
- Introduced `InitializationResult` and `ResourceRequest` structures for fine-grained resource management (e.g., directories, files).
- Enhanced configuration injection by separating `global_configs`, `defaults_configs`, and backend-level `haproxy_config`.
- Updated existing plugins (e.g., JWT Validator, Cloudflare) to use the initialization phase for resource setup.
- Simplified domain plugin execution by consolidating configuration logic into unified loops.
This commit is contained in:
Joao Gilberto Magalhaes 2026-02-13 16:14:05 -05:00
parent 97845b8a52
commit ece012a884
10 changed files with 453 additions and 107 deletions

View file

@ -136,11 +136,10 @@ class FastcgiPlugin(PluginInterface):
fcgi_app_definition = "\n".join(fcgi_app_lines)
# Build metadata - store fcgi_app_definition to be extracted and added to global configs
# Build metadata
metadata = {
"domain": context.domain,
"fcgi_app_name": fcgi_app_name,
"fcgi_app_definition": fcgi_app_definition, # For top-level injection
"document_root": self.document_root,
"index_file": self.index_file,
"path_info": self.path_info,
@ -150,5 +149,6 @@ class FastcgiPlugin(PluginInterface):
return PluginResult(
haproxy_config=backend_config, # use-fcgi-app directive for the backend
modified_easymapping=None,
metadata=metadata
metadata=metadata,
global_configs=[fcgi_app_definition] # For top-level injection
)