feature: The executor now controls the public action map - meaning actions work without the API, and pages load faster (and much more!) #324
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a pretty major OliveTin change.
OliveTin actions in the configuration file do not necessarily map 1:1 to actions that can be started. The most notable example of this is entities, which "generate" buttons on the web UI from a single config entry. This means that OliveTin has to generate an ID for each individual button that can be started (as going by action titles with variables in them won't work). OliveTin has previously maintained this map in the grpc API, eg:
The problem is that this map is only updated / generated on requests to the API, specifically
GetDashboardComponents
. This created the following subtle problems;restart_httpd
, and nobody has visited the OliveTin webpage yet, the action won't be found; Running from API throws error that action could not be found #305This change moves the action map into the Executor, which in itself sounds like an incredibly trivial change, but in practice required a LOT of chunky reachitecting of the way OliveTin does things!