NAME

Mojolicious::Plugin::Surveil - Surveil user actions

VERSION

0.03

DESCRIPTION

Mojolicious::Plugin::Surveil is a plugin which allow you to see every event a user trigger on your web page. It is meant as a debug tool for seeing events, even if the browser does not have a JavaScript console.

CAVEAT: The JavaScript that is injected require WebSocket in the browser to run. The surveil events are attached to the "body" element, so any other event that prevent events from bubbling will not emit this to the WebSocket resource.

SYNOPSIS

Application

use Mojolicious::Lite;
plugin "surveil";

In your browser

Visit http://localhost:3000?_surveil=1 to enable the logging. Try clicking around on your page and look in the console for log messages.

Custom event handler

use Mojo::Redis;
use Mojo::JSON "encode_json";

plugin "surveil", {
  handler => sub {
    my ($c, $event) = @_;
    my $ip = $c->tx->remote_address;
    $c->redis->pubsub->notify("surveil:$ip" => encode_json $event);
  }
};

The above example is useful if you want to publish the events to Redis instead of a log file. A developer can then run commands below to see what a given user is doing:

$ redis-cli psubscribe "surveil:*"
$ redis-cli subscribe "surveil:192.168.0.100"

METHODS

register

$self->register($app, \%config);
$app->plugin("surveil" => \%config);

Used to add an "after_render" hook into the application which adds a JavaScript to every HTML document when the "enable_param" is set.

%config can have the following settings:

COPYRIGHT AND LICENSE

Copyright (C) 2014-2018, Jan Henning Thorsen

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org