Developer-Dashboard

 view release on metacpan or  search on metacpan

lib/Developer/Dashboard.pm  view on Meta::CPAN

C<dashboard path add foobar .> followed by C<dashboard of foobar 456.txt>, now
resolve the exact configured or scoped file target directly.

The hashed C<state_root>, C<collectors_root>, C<indicators_root>, and
C<sessions_root> paths live under the shared temp state tree, not inside the
layered runtime config tree. If a reboot or temp cleanup removes one of those
hashed state roots, the path registry recreates it automatically the next time
dashboard code resolves the path and rewrites the matching F<runtime.json>
metadata file before collectors, indicators, or sessions use it again.

Use C<dashboard which E<lt>targetE<gt>> to inspect what C<dashboard> would
execute before you run it. The command prints one
C<COMMAND /full/path> line for the resolved file and then one
C<HOOK /full/path> line for each participating hook in runtime execution
order. That works for built-in helpers such as C<jq>, layered custom commands
such as C<layered-tool>, single-level skill commands such as
C<example-skill.somecmd>, and multi-level nested skill commands such as
C<nest.level1.level2.here>. If you add C<--edit>, C<dashboard which> skips the
inspection output and re-enters C<dashboard open-file> with the resolved
command file path so the normal editor-selection behavior is reused.

Render shell bootstrap for bash, zsh, POSIX sh, or PowerShell:

  dashboard shell bash
  dashboard shell zsh
  dashboard shell sh
  dashboard shell ps

The generated zsh bootstrap now loads C<compinit> before any C<compdef>
registration, so a fresh macOS zsh shell can evaluate it without raising
C<command not found: compdef>.

Audit runtime permissions:

  dashboard doctor
  dashboard doctor --fix

Resolve or open files from the CLI:

  dashboard of --print My::Module
  dashboard open-file --print com.example.App
  dashboard open-file --print javax.jws.WebService
  dashboard of --print notes
  dashboard of --print . 'Ok\.js$'
  dashboard of --print foobar 456.txt
  dashboard open-file --print path/to/file.txt
  dashboard open-file --print bookmarks api-dashboard

Query structured files from the CLI:

  printf '{"alpha":{"beta":2}}' | dashboard jq alpha.beta
  printf 'alpha:\n  beta: 3\n' | dashboard yq alpha.beta
  printf '[alpha]\nbeta = 4\n' | dashboard tomq alpha.beta
  printf 'alpha.beta=5\n' | dashboard propq alpha.beta
  dashboard jq file.json '$d'

Start the local app:

  dashboard serve

Open the root path with no bookmark path to get the free-form bookmark editor directly. If you start the web service with C<dashboard serve --no-editor> or C<dashboard serve --no-endit>, the browser stays read-only instead and direct editor/source ro...

Stop the local app and collector loops:

  dashboard stop

Interactive terminal runs now print a task board on C<stderr> first, then
mark each stop step as it finishes so the command does not appear hung while
the runtime waits for managed shutdown.

Restart the local app and configured collector loops:

  dashboard restart

Interactive terminal runs now print the full restart task board on C<stderr>,
mark the active step with a yellow C<->, mark completed steps with a green
C<[OK]>, mark failed steps with a red C<[X]>, and keep the final JSON result
on C<stdout>. Stop and restart shutdown paths send numeric POSIX signals
instead of named signal strings, so minimal Alpine/iSH Perl builds that reject
C<TERM> by name still terminate managed web and collector processes correctly.

Create a helper login user:

  dashboard auth add-user <username> <password>

Remove a helper login user:

  dashboard auth remove-user helper

Helper sessions show a Logout link in the page chrome. Logging out removes both
the helper session and that helper account. Helper page views also show the
helper username in the top-right chrome instead of the local system account.
Exact-loopback admin requests do not show a Logout link.

=head2 Working With Pages

Create a starter page document:

  dashboard page new sample "Sample Page"

Save a page:

  dashboard page new sample "Sample Page" | dashboard page save sample

List saved pages:

  dashboard page list

Render a saved page:

  dashboard page render sample

C<dashboard page render> now uses the same page-runtime preparation path as
the browser route, so saved bookmark TT such as C<[% title %]> and
C<[% stash.foo %]> is rendered there too instead of only working under
C</app/E<lt>idE<gt>>.

Encode and decode transient pages:

  dashboard page show sample | dashboard page encode
  dashboard page show sample | dashboard page encode | dashboard page decode



( run in 2.080 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )