agendash-addition
Agenda Dashboard
Last updated 10 months ago by wes485 .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install agendash-addition 
SYNC missed versions from official npm registry.

Agendash

Build Status Slack Status Known Vulnerabilities

A Dashboard for Agenda


Features

  • Search by job name , user or tag
  • Job status auto-refreshes (2-second polling by default)
  • Schedule a new job from the UI
  • Dive in to see more details about the job, like the json data
  • Requeue a job (clone the data and run immediately)
  • Delete jobs (Useful for cleaning up old completed jobs)

Notes

  • Automatically creates additional indexes on several columns (See #24).

Screenshots

Auto-refresh list of jobs


See job details, requeue or delete jobs


Install

npm install --save agendash

Standalone usage

Agendash comes with a standalone Express app which you can use like this:

node ./bin/agendash-standalone.js --db={{connection string}} --collection=agendaJobs --port=3001

Middleware usage

Agendash provides Express middleware you can use at a specified path, for example this will make Agendash available on your site at the /dash path. Note: Do not try to mount Agendash at the root level like app.use('/', Agendash(agenda)).

var express = require("express");
var app = express();

// ... your other express middleware like body-parser

var Agenda = require("agenda");
var Agendash = require("agendash");

var agenda = new Agenda({ db: { address: "mongodb://127.0.0.1/agendaDb" } });
// or provide your own mongo client:
// var agenda = new Agenda({mongo: myMongoClient})

app.use("/dash", Agendash(agenda));

// ... your other routes

// ... start your server

By mounting Agendash as middleware on a specific path, you may provide your own authentication for that path. For example if you have an authenticated session using passport, you can protect the dashboard path like this:

app.use('/dash',
  function (req, res, next) {
    if (!req.user || !req.user.is_admin) {
      res.send(401);
    } else {
      next();
    }
  },
  Agendash(agenda)
);

Other middlewares will come soon in the folder /lib/middlewares/. You'll just have to update the last line to require the middleware you need:

app.use(
  "/agendash",
  Agendash(agenda, {
    middleware: "koa"
  })
);

Note that if you use a CSRF protection middleware like csurf, you might need to configure it off for Agendash-routes.

Additional options

The second argument to Agendash is an optional object. Valid keys are:

  • middleware: Currently only 'express' is supported. I'd like to use 'koa' soon.
  • title: Defaults to "Agendash". Useful if you are running multiple Agenda pools.

Help appreciated

There are several things I would like help with:

  • [ ] I'm rusty with Backbone. Clean up the client code. I wasn't sure on the best way to trigger and handle update events.
  • [ ] Write some tests!
  • [ ] Use Agendash and submit issues!

Current Tags

  • 1.0.1                                ...           latest (10 months ago)

2 Versions

  • 1.0.1                                ...           10 months ago
  • 1.0.0                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (7)
Dev Dependencies (4)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |