make wantedScripts an ordered list #3

Merged
luna merged 1 commit from claude/aproxy-readme-todo-01Xkjy2nyHBYcMqRcFXVbH2x into mistress 2025-11-23 20:17:28 +00:00
4 changed files with 13 additions and 4 deletions

View file

@ -29,7 +29,7 @@ initialization will run validation of your configuration file and check
if it is valid. if it is not you will see logs emitted about what failed
when a request comes in, the scripts declared in the aproxy config file will
be executed sequentially (TODO: ensure order on conf file is chain order).
be executed sequentially in the order they appear in the configuration.
each script has two types of callbacks: init and request

View file

@ -1,6 +1,11 @@
return {
version = 1,
wantedScripts = {
['webfinger_allowlist'] = {accounts = {"example@example.com"}}
{
name = 'webfinger_allowlist',
config = {
accounts = {"example@example.com"}
}
}
}
}

View file

@ -84,7 +84,9 @@ end
local function validateConfigFile(config_object)
local all_schema_errors = {}
for module_name, module_config in pairs(config_object.wantedScripts) do
for _, script_entry in ipairs(config_object.wantedScripts) do
local module_name = script_entry.name
local module_config = script_entry.config
local module_manifest = require('scripts.' .. module_name)
local config_schema = module_manifest.config
local schema_errors = validateSchema(config_schema, module_config)

View file

@ -18,7 +18,9 @@ end
function ctx:loadChain()
self.compiled_chain = {}
for module_name, module_config in pairs(self._wanted_scripts) do
for _, script_entry in ipairs(self._wanted_scripts) do
local module_name = script_entry.name
local module_config = script_entry.config
local module = require('scripts.' .. module_name)
local module_config_readonly = table.readonly(module_config)
local module_state = module.init(module_config_readonly)