NAME
Developer::Dashboard::ActionRunner - trusted action execution runtime
SYNOPSIS
my $runner = Developer::Dashboard::ActionRunner->new(files => $files, paths => $paths);
my $result = $runner->run_page_action(...);
DESCRIPTION
This module executes built-in and trusted command actions for dashboard pages, including encoded action transport payloads.
METHODS
new, run_page_action, encode_action_payload, decode_action_payload, run_encoded_action, run_command_action
Construct and execute actions.
PURPOSE
This module validates and executes page actions. It decides whether a page action is a built-in dashboard action or an explicit command action, enforces the saved-page trust rules, captures command output, and returns structured result hashes for the page runtime and web routes.
WHY IT EXISTS
It exists because bookmark actions need one place that owns trust checks and command execution semantics. Without that boundary, the web layer, page renderer, and saved-action transport would each grow their own action policy and drift apart.
WHEN TO USE
Use this file when changing page action security, the transport payload for encoded actions, command backgrounding rules, or the way page actions report stdout, stderr, and exit codes back to callers.
HOW TO USE
Construct it with a file registry and path registry, then call run_page_action for one decoded action hash or encode_action_payload when a route needs a portable transport token. Keep action execution policy here instead of duplicating it in controllers or bookmark templates.
WHAT USES IT
It is used by Developer::Dashboard::Web::App, by provider pages resolved through the page resolver, by saved page action buttons in the browser, and by action/web regression tests.
EXAMPLES
Example 1:
perl -Ilib -MDeveloper::Dashboard::ActionRunner -e 1
Do a direct compile-and-load check against the module from a source checkout.
Example 2:
prove -lv t/00-load.t t/21-refactor-coverage.t
Run the focused regression tests that most directly exercise this module's behavior.
Example 3:
HARNESS_PERL_SWITCHES=-MDevel::Cover prove -lr t
Recheck the module under the repository coverage gate rather than relying on a load-only probe.
Example 4:
prove -lr t
Put any module-level change back through the entire repository suite before release.