Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<MicrosoftPackageVersionRange>[10.0.0, 11.0.0)</MicrosoftPackageVersionRange>
<NpgsqlPackageVersionRange>[10.0.0, 11.0.0)</NpgsqlPackageVersionRange>
<MicrosoftPackageVersionRange>10.0.11</MicrosoftPackageVersionRange>
<NpgsqlPackageVersionRange>10.0.3</NpgsqlPackageVersionRange>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="[10.0.102, 11.0.0)" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.400" />
<PackageVersion Include="Microsoft.AspNetCore.App.Internal.Assets" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.5.0" />
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.9.0" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="$(MicrosoftPackageVersionRange)" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.6.2" />
<PackageVersion Include="Microsoft.Testing.Platform" Version="2.2.1" />
<PackageVersion Include="Cronos" Version="0.12.0" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.10.0" />
<PackageVersion Include="Microsoft.Testing.Platform" Version="2.3.3" />
<PackageVersion Include="Cronos" Version="0.13.0" />
<PackageVersion Include="Npgsql" Version="$(NpgsqlPackageVersionRange)" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.11.0" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.14.0" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="4.0.0" />
</ItemGroup>
</Project>
</Project>
55 changes: 54 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,13 +218,66 @@ Cron expressions use the standard five-field format and are evaluated in UTC.
builder.Services.AddShedduellerDashboard(options =>
{
options.EventRetention = TimeSpan.FromDays(14);
options.JobViews =
[
new ShedduellerDashboardJobView("Active Work")
{
States = [JobState.Queued, JobState.Claimed],
Columns =
[
new(ShedduellerDashboardJobColumnKind.JobId),
new(ShedduellerDashboardJobColumnKind.Enqueued),
new(ShedduellerDashboardJobColumnKind.State),
new(ShedduellerDashboardJobColumnKind.Queue),
new(ShedduellerDashboardJobColumnKind.Handler),
new(ShedduellerDashboardJobColumnKind.Tag, "provider", "Provider"),
new(ShedduellerDashboardJobColumnKind.Groups),
new(ShedduellerDashboardJobColumnKind.Progress),
new(ShedduellerDashboardJobColumnKind.Attempts),
],
},
new ShedduellerDashboardJobView("Failures")
{
States = [JobState.Failed],
Sort = JobInspectionSort.NewestFirst,
Columns =
[
new(ShedduellerDashboardJobColumnKind.JobId),
new(ShedduellerDashboardJobColumnKind.TerminalTime),
new(ShedduellerDashboardJobColumnKind.Handler),
new(ShedduellerDashboardJobColumnKind.Tag, "provider", "Provider"),
new(ShedduellerDashboardJobColumnKind.Tag, "manager", "Manager"),
new(ShedduellerDashboardJobColumnKind.Tag, "external-listing", "External Listing"),
new(ShedduellerDashboardJobColumnKind.Disposition),
new(ShedduellerDashboardJobColumnKind.Attempts),
],
},
new ShedduellerDashboardJobView("Listings")
{
TagContains = "domain:listing",
Sort = JobInspectionSort.NewestFirst,
Columns =
[
new(ShedduellerDashboardJobColumnKind.JobId),
new(ShedduellerDashboardJobColumnKind.Enqueued),
new(ShedduellerDashboardJobColumnKind.State),
new(ShedduellerDashboardJobColumnKind.Handler),
new(ShedduellerDashboardJobColumnKind.Tag, "provider", "Provider"),
new(ShedduellerDashboardJobColumnKind.Tag, "manager", "Manager"),
new(ShedduellerDashboardJobColumnKind.Tag, "listing-id", "Listing"),
new(ShedduellerDashboardJobColumnKind.Tag, "external-listing", "External Listing"),
new(ShedduellerDashboardJobColumnKind.Disposition),
],
},
];
options.DefaultJobViewName = "Active Work";
});

app.UseAntiforgery();
app.MapShedduellerDashboard("/sheddueller");
```

The dashboard uses the configured Sheddueller provider and can be hosted by a worker process or a client-only web process.
The dashboard uses the configured Sheddueller provider and can be hosted by a worker process or a client-only web process. Configured job views are shared, read-only presets. Dashboard users can copy or create personal views that persist in browser storage for the dashboard's mounted path. A view restores filters, sort order, visible column order, per-column width overrides, and tag-derived columns; promoted tags are removed from the remaining Tags cell. Column widths can be set in host presets with the optional `Width` property or resized and auto-fitted from the dashboard.

## Testing

Expand Down
2 changes: 1 addition & 1 deletion dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"dotnet-outdated-tool": {
"version": "4.7.1",
"version": "4.8.1",
"commands": [
"dotnet-outdated"
],
Expand Down
1 change: 1 addition & 0 deletions src/Sheddueller.Dashboard/Components/DashboardApp.razor
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<script src="https://cdn.jsdelivr.net/npm/uplot@1.6.32/dist/uPlot.iife.min.js"></script>
<script src="_content/Sheddueller.Dashboard/vendor/prism/prism.js" data-manual></script>
<script src="_content/Sheddueller.Dashboard/vendor/prism/sheddueller-prism.js"></script>
<script src="_content/Sheddueller.Dashboard/vendor/sheddueller-job-views.js?v=@DashboardAssetVersion"></script>
<script src="_content/Sheddueller.Dashboard/vendor/sheddueller-throughput-chart.js?v=@DashboardAssetVersion"></script>
<script src="_framework/blazor.web.js"></script>
</body>
Expand Down
Loading