Open bretg opened 3 months ago
Discussed these options:
We're leaning heavily towards option 2:
settings.modules.require-config-to-invoke
. Start off with the default of this flag false We'll bring this up again at next weeks meeting, hopefully for the final time.
We did meet last meeting and confirm Option 2 as detailed above.
As the team has been building this feature in PBS-Java, I've been corrected on a misunderstanding and we've added a feature.
hooks.admin.module-execution
option that will allow the host company to define and override which execution plans get called. This is meant to be defines in the default account config and can be overridden for each account, providing a good deal of flexibility in controlling which modules run for each account.Here's an example with expected behavior.
The application.yaml host-level config contains the execution plans for 4 modules, but modules 1 and 2 don't need any configuration. Pseudo-code:
settings:
modules:
require-config-to-invoke: true
execution-plan:
processed-auction:
group 1:
execute module 1
execute module 2
group 2:
execute module 3
all-processed-bid-responses:
group 1:
execute module 4
Default account config:
{
hooks: {
admin: {
module-execution: { // instead of defining blank global config
"module1": true
"module2": true
}
}
}
Account-level config:
hooks.admin.module-execution:module2:false
Expected results:
Having more modules is great, but we've found that execution plans are more difficult to manage than they could be.
So we'd like to propose the following:
We discussed having core be aware of the enabled flag, but currently the module config is opaque to PBS-core. It could cause duplicate parsing of config JSON. It would be an upgrade of the module infrastructure to support a core-visible enabled flag.
PBS-Go reads the module config from the merged config, looking for an enabled flag.
We agreed to consider this offline and continue the discussion in this issue.