NAME
Developer::Dashboard::CLI::SeededPages - shipped bookmark assets for dashboard init
SYNOPSIS
use Developer::Dashboard::CLI::SeededPages;
my $page = Developer::Dashboard::CLI::SeededPages::api_dashboard_page();
DESCRIPTION
Loads the shipped seeded bookmark instruction files used by dashboard init and runtime bootstrap so the public dashboard entrypoint does not need to embed the full bookmark source for the API and SQL dashboards. It also owns the non-destructive starter-page refresh contract: missing or stale dashboard-managed copies may refresh to the latest shipped seed, while diverged user-edited saved pages stay untouched.
PURPOSE
This module manages shipped starter pages such as project-home, api-dashboard, and sql-dashboard. It decides whether a runtime should receive a seed, whether a dashboard-managed copy is still safe to refresh, and how bridged historical managed digests are recognized during upgrades.
WHY IT EXISTS
It exists because seeding starter pages is not just a copy operation. The runtime must preserve real user edits while still refreshing dashboard-managed pages when the shipped content changed or when an older managed digest needs to be upgraded in place.
WHEN TO USE
Use this file when changing dashboard init seeding rules, starter-page refresh behavior, bridge digests for older releases, or the safe-update policy for managed seed copies in runtime dashboards.
HOW TO USE
Call the seeding and refresh routines from init/update flows with the active runtime paths and page store. Keep managed-seed detection here so the command layer does not guess about whether a page is user-owned or dashboard-managed.
WHAT USES IT
It is used by dashboard init, runtime bootstrap/update scripts, seed-refresh regressions for stale managed copies, and the SQL/API dashboard starter-page tests.
EXAMPLES
Example 1:
perl -Ilib -MDeveloper::Dashboard::CLI::SeededPages -e 1
Do a direct compile-and-load check against the module from a source checkout.
Example 2:
prove -lv t/04-update-manager.t t/26-sql-dashboard.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.