From 3fbb53aab0793d452dfa8459a88a0c4bcb4edd21 Mon Sep 17 00:00:00 2001 From: Theaux Masquelier <43664045+Theauxm@users.noreply.github.com> Date: Thu, 12 Mar 2026 10:44:21 -0600 Subject: [PATCH 1/2] feat: display host tracking fields in metadata pages Show HostName and HostEnvironment on the metadata list and detail pages so operators can see which host executed each train. --- .../Pages/Data/MetadataDetailPage.razor | 31 +++++++++++++++++++ .../Components/Pages/Data/MetadataPage.razor | 10 ++++++ 2 files changed, 41 insertions(+) diff --git a/src/Trax.Dashboard/Components/Pages/Data/MetadataDetailPage.razor b/src/Trax.Dashboard/Components/Pages/Data/MetadataDetailPage.razor index c14f52d..b02477c 100644 --- a/src/Trax.Dashboard/Components/Pages/Data/MetadataDetailPage.razor +++ b/src/Trax.Dashboard/Components/Pages/Data/MetadataDetailPage.razor @@ -123,6 +123,37 @@ +@* ── Execution Host ── *@ +@if (_metadata.HostName is not null || _metadata.HostEnvironment is not null) +{ + + Execution Host + + + + + + + + + + + + + @if (!string.IsNullOrWhiteSpace(_metadata.HostLabels)) + { + + + + @FormatJson(_metadata.HostLabels) + + + + } + + +} + @* ── Step Progress (only if in progress with a running step) ── *@ @if (_metadata.TrainState == TrainState.InProgress && !string.IsNullOrWhiteSpace(_metadata.CurrentlyRunningStep)) { diff --git a/src/Trax.Dashboard/Components/Pages/Data/MetadataPage.razor b/src/Trax.Dashboard/Components/Pages/Data/MetadataPage.razor index e2c7a62..652aa5d 100644 --- a/src/Trax.Dashboard/Components/Pages/Data/MetadataPage.razor +++ b/src/Trax.Dashboard/Components/Pages/Data/MetadataPage.razor @@ -96,6 +96,16 @@ Title="Manifest Id" Width="140px" Visible="false" /> + + From edf2bf8dd8eddcd99daa5657269c67f17d38bb62 Mon Sep 17 00:00:00 2001 From: Theaux Masquelier <43664045+Theauxm@users.noreply.github.com> Date: Thu, 12 Mar 2026 12:37:38 -0600 Subject: [PATCH 2/2] fix: set HasDataProvider in scheduler builder tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AddScheduler() now validates that a data provider is configured. These tests exercise the scheduling builder API (cycle detection, input type validation) and don't need actual persistence — just set the flag to satisfy the precondition. --- .../UnitTests/CyclicDependencyValidationTests.cs | 2 +- .../UnitTests/InferredSchedulingApiTests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Trax.Dashboard.Tests.Integration/UnitTests/CyclicDependencyValidationTests.cs b/tests/Trax.Dashboard.Tests.Integration/UnitTests/CyclicDependencyValidationTests.cs index 1ab3db4..0150a70 100644 --- a/tests/Trax.Dashboard.Tests.Integration/UnitTests/CyclicDependencyValidationTests.cs +++ b/tests/Trax.Dashboard.Tests.Integration/UnitTests/CyclicDependencyValidationTests.cs @@ -21,7 +21,7 @@ public class CyclicDependencyValidationTests public void SetUp() { _services = new ServiceCollection(); - var root = new TraxBuilder(_services, new EffectRegistry()); + var root = new TraxBuilder(_services, new EffectRegistry()) { HasDataProvider = true }; _parentBuilder = root.AddEffects(effects => effects) .AddMediator(typeof(IFakeSchedulerTrainA).Assembly); } diff --git a/tests/Trax.Dashboard.Tests.Integration/UnitTests/InferredSchedulingApiTests.cs b/tests/Trax.Dashboard.Tests.Integration/UnitTests/InferredSchedulingApiTests.cs index 52e4f44..573e86a 100644 --- a/tests/Trax.Dashboard.Tests.Integration/UnitTests/InferredSchedulingApiTests.cs +++ b/tests/Trax.Dashboard.Tests.Integration/UnitTests/InferredSchedulingApiTests.cs @@ -22,7 +22,7 @@ public class InferredSchedulingApiTests public void SetUp() { _services = new ServiceCollection(); - var root = new TraxBuilder(_services, new EffectRegistry()); + var root = new TraxBuilder(_services, new EffectRegistry()) { HasDataProvider = true }; _parentBuilder = root.AddEffects(effects => effects) .AddMediator(typeof(IFakeSchedulerTrainA).Assembly); }
@FormatJson(_metadata.HostLabels)