Skip to main content

Quartz.NET dashboard agent - a plugin that dials a scheduler out to a Quartz dashboard over one outbound connection, so the dashboard can show and drive it without an inbound port; Quartz Scheduling Framework for .NET

Total Downloads
271
271
Published
Oct 19, 2026
5d ago

Get Started

dotnet add package Quartz.Dashboard.Agent --version 4.6.0
ProductVersions
.NET
net10.0

README

Quartz.Dashboard.Agent

Quartz.Dashboard.Agent puts a scheduler on a Quartz dashboard running somewhere else, over one outbound connection the scheduler opens itself. The dashboard shows and drives it — every page, every action, the history and the live events — without an inbound port on the worker, a plugin that serves HTTP, or a shared database.

Installation

dotnet add package Quartz.Dashboard.Agent

The dashboard has to accept agents: AddQuartzDashboard(options => options.AcceptAgents(…)) in the dashboard's application, which maps the agent hub at {DashboardPath}/agents.

Usage

builder.AddQuartz(q =>
{
    q.UseDashboardAgent(agent =>
    {
        agent.Endpoint = new Uri("https://ops.example.com/quartz/agents");
        agent.Token = builder.Configuration["Dashboard:AgentToken"];
        agent.Target = "worker-1";

        // Refused until said: an agent crosses a trust boundary, and a job type is a string
        // the dashboard sends.
        agent.IsJobTypeAllowed = name => name.StartsWith("Acme.Jobs.", StringComparison.Ordinal);
    });
});

Target is the first half of the scheduler's key on the dashboard, worker-1/QuartzScheduler; it defaults to the machine name. The token goes as an Authorization: Bearer header, never in the URL. The agent reconnects for as long as the scheduler runs, and a dashboard that is down when the worker starts is dialled again until it answers.

The agent refuses every job type until IsJobTypeAllowed says which it accepts, because the connection crosses a trust boundary and a job type is a string the dashboard sends. ReadOnly refuses every mutation and IsOperationAllowed refuses by route name; all three are decided in the worker's process, and nothing the dashboard sends can widen them.

Documentation

https://www.quartz-scheduler.net/documentation/quartz-4.x/packages/dashboard-agent.html

Downloads by Version

Similar & Alternative Packages

Hand-picked matching NuGet libraries based on tags & ecosystem

Depended On By

Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.