Gate endpoint UI refresh on fresh telemetry and land endpoint agent

A command reaching 'succeeded' only proves the agent ran the action, not that it posted a new telemetry snapshot. Reloading panels on command success alone re-rendered stale service/process rows, so a stopped process could still show running right after Refresh Status.

Add a lightweight telemetrymeta probe exposing lastreportedat and gate both the header Refresh Status action and inline row Start/Stop on that stamp advancing past a pre-action baseline. Polling is bounded so an offline or idle agent never hangs the button, and messaging distinguishes a confirmed refresh from a queued one.

Bring the .NET endpoint agent source (service, tray, installer) into the repo so Cameron can merge and test, with an agent/.gitignore keeping bin/obj/publish out. Includes the DncMain launch-path fix, tray single-file host env scrub, and best-effort file logger.
This commit is contained in:
benjamin.baker
2026-08-28 15:07:20 -04:00
parent c001657582
commit af133372b4
46 changed files with 4593 additions and 128 deletions

View File

@@ -15,7 +15,8 @@
},
{
"modeltype": "Camera",
"category": "Network"
"category": "Network",
"description": "Security camera for facility monitoring"
},
{
"modeltype": "CMM",
@@ -44,7 +45,8 @@
},
{
"modeltype": "Eddy Current",
"category": "Equipment"
"category": "Equipment",
"description": "Wild Stallions will never be a super band until we have Eddie Van Halen on guitar."
},
{
"modeltype": "EDM",
@@ -74,7 +76,8 @@
},
{
"modeltype": "IDF",
"category": "Network"
"category": "Network",
"description": "Intermediate Distribution Frame - network equipment closet"
},
{
"modeltype": "Inspection",
@@ -96,7 +99,8 @@
},
{
"modeltype": "Lathe",
"category": "Equipment"
"category": "Equipment",
"description": "The Okuma & Howa 2SPV80 is a CNC machine renowned for its precision and efficiency in manufacturing processes. It is widely utilized across various sectors, facilitating the production of intricate components with ease. Industries such as automotive, aerospace, and metalworking benefit from its capabilities. "
},
{
"modeltype": "Measuring Machine",
@@ -108,7 +112,8 @@
},
{
"modeltype": "Part Marker",
"category": "Equipment"
"category": "Equipment",
"description": "Dot peen markers provide a reliable, permanent method for marking materials with information that is crucial for product identification and traceability in various industrial applications."
},
{
"modeltype": "Part Washer",
@@ -116,11 +121,13 @@
},
{
"modeltype": "PC",
"category": "PC"
"category": "PC",
"description": "Standard user workstation computer"
},
{
"modeltype": "Printer",
"category": "Printer"
"category": "Printer",
"description": "Network printer - HP, Xerox, or other print devices"
},
{
"modeltype": "Robotic Deburring",
@@ -138,7 +145,8 @@
},
{
"modeltype": "Shotpeen",
"category": "Equipment"
"category": "Equipment",
"description": "Shot peening is a cold working process used to produce a compressive residual stress layer and modify the mechanical properties of metals and composites."
},
{
"modeltype": "Spline Checker",
@@ -175,7 +183,8 @@
},
{
"machinetype": "CMM",
"description": "Coordinate Measuring Machine"
"description": "Coordinate Measuring Machine",
"color": "#8e44ad"
},
{
"machinetype": "CNC",
@@ -250,7 +259,8 @@
],
"computertypes": [
{
"computertype": "CMM"
"computertype": "CMM",
"color": "#7934f3"
},
{
"computertype": "CMM PC",
@@ -337,7 +347,8 @@
"printertypes": [
{
"printertype": "Card",
"description": "ID / card printer"
"description": "ID / card printer",
"color": "#2dce89"
},
{
"printertype": "Color Laser Printer",
@@ -547,11 +558,15 @@
{
"vendor": "ABTech"
},
{
"vendor": "Allen-Bradley"
},
{
"vendor": "Broach"
},
{
"vendor": "Brother"
"vendor": "Brother",
"website": "https://www.brother.com"
},
{
"vendor": "Brown & Sharpe"
@@ -652,6 +667,9 @@
{
"vendor": "Ransohoff"
},
{
"vendor": "Siemens"
},
{
"vendor": "Telesis"
},
@@ -681,7 +699,8 @@
{
"modelnumber": "EAS1000",
"vendor": "ABTech",
"modeltype": "Measuring Machine"
"modeltype": "Measuring Machine",
"imageurl": "/images/models/machines/abtech-eas1000.png"
},
{
"modelnumber": "Vertical Broach",
@@ -701,7 +720,8 @@
{
"modelnumber": "1000C1000",
"vendor": "Campbell",
"modeltype": "Grinder"
"modeltype": "Grinder",
"imageurl": "/images/models/machines/1000C1000.jpg"
},
{
"modelnumber": "6400",
@@ -716,7 +736,8 @@
{
"modelnumber": "9120AXI-B",
"vendor": "Cisco",
"modeltype": "Access Point"
"modeltype": "Access Point",
"imageurl": "/images/models/machines/Cisco9120.png"
},
{
"modelnumber": "C9200-48P-E",
@@ -751,12 +772,14 @@
{
"modelnumber": "Latitude 5440",
"vendor": "Dell Inc.",
"modeltype": "Laptop"
"modeltype": "Laptop",
"imageurl": "/images/models/machines/latitude5440.png"
},
{
"modelnumber": "Latitude 5450",
"vendor": "Dell Inc.",
"modeltype": "Laptop"
"modeltype": "Laptop",
"imageurl": "/images/models/computers/Latitude-5450.png"
},
{
"modelnumber": "Latitude 7230 Rugged Extreme Tablet",
@@ -801,27 +824,32 @@
{
"modelnumber": "OptiPlex 5050",
"vendor": "Dell Inc.",
"modeltype": "PC"
"modeltype": "PC",
"imageurl": "/images/models/computers/Optiplex-5050.png"
},
{
"modelnumber": "OptiPlex 5060",
"vendor": "Dell Inc.",
"modeltype": "PC"
"modeltype": "PC",
"imageurl": "/images/models/computers/Optiplex-5060.png"
},
{
"modelnumber": "OptiPlex 7000",
"vendor": "Dell Inc.",
"modeltype": "PC"
"modeltype": "PC",
"imageurl": "/images/models/computers/Optiplex-7000.png"
},
{
"modelnumber": "OptiPlex 7070",
"vendor": "Dell Inc.",
"modeltype": "PC"
"modeltype": "PC",
"imageurl": "/images/models/machines/OptiPlex-7070.png"
},
{
"modelnumber": "OptiPlex 7080",
"vendor": "Dell Inc.",
"modeltype": "PC"
"modeltype": "PC",
"imageurl": "/images/models/computers/Optiplex-7080.jpg"
},
{
"modelnumber": "OptiPlex 7090",
@@ -871,7 +899,8 @@
{
"modelnumber": "OptiPlex Tower Plus 7010",
"vendor": "Dell Inc.",
"modeltype": "PC"
"modeltype": "PC",
"imageurl": "/images/models/computers/OptiPlex-Tower-Plus-7010.png"
},
{
"modelnumber": "OptiPlex Tower Plus 7020",
@@ -901,7 +930,8 @@
{
"modelnumber": "Precision 5560",
"vendor": "Dell Inc.",
"modeltype": "Laptop"
"modeltype": "Laptop",
"imageurl": "/images/models/machines/precision5560.jpg"
},
{
"modelnumber": "Precision 5570",
@@ -1046,22 +1076,26 @@
{
"modelnumber": "NT-4300",
"vendor": "DMG Mori",
"modeltype": "Mill Turn"
"modeltype": "Mill Turn",
"imageurl": "/images/models/machines/nt4300.jpg"
},
{
"modelnumber": "Puma MX3100",
"vendor": "Doosan",
"modeltype": "Mill Turn"
"modeltype": "Mill Turn",
"imageurl": "/images/models/machines/mx3100.png"
},
{
"modelnumber": "EZ-Eddy",
"vendor": "Eddy",
"modeltype": "Eddy Current"
"modeltype": "Eddy Current",
"imageurl": "/images/models/machines/ezeddy.png"
},
{
"modelnumber": "TM-C3500",
"vendor": "Epson",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Epson-C3500.png"
},
{
"modelnumber": "31i-MB",
@@ -1071,12 +1105,14 @@
{
"modelnumber": "M710UC",
"vendor": "Fanuc",
"modeltype": "Robotic Deburring"
"modeltype": "Robotic Deburring",
"imageurl": "/images/models/machines/M710uc.png"
},
{
"modelnumber": "D218",
"vendor": "Fidia",
"modeltype": "5-axis Mill"
"modeltype": "5-axis Mill",
"imageurl": "/images/models/machines/d218.png"
},
{
"modelnumber": "475GMS",
@@ -1086,12 +1122,14 @@
{
"modelnumber": "P600S",
"vendor": "Gleason-Pfauter",
"modeltype": "Hobbing Machine"
"modeltype": "Hobbing Machine",
"imageurl": "/images/models/machines/p600s.png"
},
{
"modelnumber": "Vacuum Furnace",
"vendor": "GM Enterprises",
"modeltype": "Furnace"
"modeltype": "Furnace",
"imageurl": "/images/models/machines/furnace.png"
},
{
"modelnumber": "550T",
@@ -1101,7 +1139,8 @@
{
"modelnumber": "G750",
"vendor": "Grob",
"modeltype": "Mill Turn"
"modeltype": "Mill Turn",
"imageurl": "/images/models/machines/g750.jpg"
},
{
"modelnumber": "VF-2SS",
@@ -1111,12 +1150,14 @@
{
"modelnumber": "7.10.7 SF",
"vendor": "Hexagon",
"modeltype": "CMM"
"modeltype": "CMM",
"imageurl": "/images/models/machines/7107sf.png"
},
{
"modelnumber": "CMM",
"vendor": "Hexagon",
"modeltype": "CMM"
"modeltype": "CMM",
"imageurl": "/images/models/machines/cmm.png"
},
{
"modelnumber": "Global Advantage",
@@ -1126,7 +1167,8 @@
{
"modelnumber": "DTC 4500e",
"vendor": "HID",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/DTC4500e.png"
},
{
"modelnumber": "Hoffmann Broach",
@@ -1136,12 +1178,14 @@
{
"modelnumber": "Color LaserJet CP2025",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet -CP2025.png"
},
{
"modelnumber": "Color LaserJet M254dw",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M254dw.png"
},
{
"modelnumber": "Color LaserJet M255dw",
@@ -1165,7 +1209,8 @@
{
"modelnumber": "DesignJet T1700dr PS",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/HP-DesignJet-T1700dr.png"
},
{
"modelnumber": "EliteDesk 800 G6",
@@ -1180,7 +1225,8 @@
{
"modelnumber": "LaserJet 4250tn",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-4250.png"
},
{
"modelnumber": "LaserJet CP5225",
@@ -1200,7 +1246,8 @@
{
"modelnumber": "LaserJet M406",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M406.png"
},
{
"modelnumber": "LaserJet M428Fdn",
@@ -1215,12 +1262,14 @@
{
"modelnumber": "LaserJet M454dn",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M454dn.png"
},
{
"modelnumber": "LaserJet M506",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M506.png"
},
{
"modelnumber": "LaserJet M507",
@@ -1235,7 +1284,8 @@
{
"modelnumber": "LaserJet M602",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M602.png"
},
{
"modelnumber": "LaserJet M610",
@@ -1290,7 +1340,8 @@
{
"modelnumber": "LaserJet P3015dn",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-P3015dn.png"
},
{
"modelnumber": "LaserJet Pro 200 color M251nw",
@@ -1305,22 +1356,26 @@
{
"modelnumber": "LaserJet Pro 4001n",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-4001n.png"
},
{
"modelnumber": "LaserJet Pro M252dw",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-Pro-M252dw.png"
},
{
"modelnumber": "LaserJet Pro M404n",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M404.png"
},
{
"modelnumber": "LaserJet Pro M607",
"vendor": "HP",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/LaserJet-M607.png"
},
{
"modelnumber": "ProLiant DL380 Gen9",
@@ -1330,7 +1385,8 @@
{
"modelnumber": "VT 550 2SP",
"vendor": "Hwacheon",
"modeltype": "Vertical Turning Center"
"modeltype": "Vertical Turning Center",
"imageurl": "/images/models/machines/vt5502sp.png"
},
{
"modelnumber": "PM43",
@@ -1340,22 +1396,26 @@
{
"modelnumber": "VR-3100",
"vendor": "Keyence",
"modeltype": "Measuring Machine"
"modeltype": "Measuring Machine",
"imageurl": "/images/models/machines/keyence-vr3100.png"
},
{
"modelnumber": "Horizontal Broach",
"vendor": "LaPointe",
"modeltype": "Broach"
"modeltype": "Broach",
"imageurl": "/images/models/machines/hbroach.png"
},
{
"modelnumber": "a81nx",
"vendor": "Makino",
"modeltype": "Horizontal Machining Center"
"modeltype": "Horizontal Machining Center",
"imageurl": "/images/models/machines/a81nx.png"
},
{
"modelnumber": "C-4500",
"vendor": "Mitutoyo",
"modeltype": "Wax Trace"
"modeltype": "Wax Trace",
"imageurl": "/images/models/machines/c4500.png"
},
{
"modelnumber": "CV-3200",
@@ -1374,7 +1434,8 @@
{
"modelnumber": "VP9000",
"vendor": "OKK",
"modeltype": "5-axis Mill"
"modeltype": "5-axis Mill",
"imageurl": "/images/models/machines/vp9000.jpg"
},
{
"modelnumber": "2SP-V80",
@@ -1384,7 +1445,8 @@
{
"modelnumber": "LOC650",
"vendor": "Okuma",
"modeltype": "Mill Turn"
"modeltype": "Mill Turn",
"imageurl": "/images/models/machines/loc650.png"
},
{
"modelnumber": "Multus",
@@ -1394,12 +1456,14 @@
{
"modelnumber": "VTM-100",
"vendor": "Okuma",
"modeltype": "Vertical Lathe"
"modeltype": "Vertical Lathe",
"imageurl": "/images/models/machines/vtm100.png"
},
{
"modelnumber": "Phoenix Broach",
"vendor": "Phoenix Inc",
"modeltype": "Broach"
"modeltype": "Broach",
"imageurl": "/images/models/machines/phoenixbroach.png"
},
{
"modelnumber": "Shotpeen",
@@ -1409,12 +1473,14 @@
{
"modelnumber": "Lean Drum",
"vendor": "Ransohoff",
"modeltype": "Part Washer"
"modeltype": "Part Washer",
"imageurl": "/images/models/machines/leandrum.jpg"
},
{
"modelnumber": "LeanJet RB-2",
"vendor": "Ransohoff",
"modeltype": "Part Washer"
"modeltype": "Part Washer",
"imageurl": "/images/models/machines/rb2.png"
},
{
"modelnumber": "PINSTAMP - TMP4210 Dot Peen",
@@ -1424,7 +1490,8 @@
{
"modelnumber": "Powerturn",
"vendor": "Toshulin",
"modeltype": "Vertical Turning Center"
"modeltype": "Vertical Turning Center",
"imageurl": "/images/models/machines/powerturn.png"
},
{
"modelnumber": "Virtual Server",
@@ -1463,12 +1530,14 @@
{
"modelnumber": "AltaLink C8135",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/AltaLink-C8130.png"
},
{
"modelnumber": "AltaLink EC8036",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Xerox-EC8036.png"
},
{
"modelnumber": "VersaLink B400",
@@ -1483,7 +1552,8 @@
{
"modelnumber": "VersaLink B405DN",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Versalink-B405.png"
},
{
"modelnumber": "VersaLink B415",
@@ -1498,12 +1568,14 @@
{
"modelnumber": "VersaLink B7125",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Versalink-B7125.png"
},
{
"modelnumber": "VersaLink C405",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Versalink-C405.png"
},
{
"modelnumber": "VersaLink C415",
@@ -1513,12 +1585,14 @@
{
"modelnumber": "VersaLink C7100",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Versalink-C7125.png"
},
{
"modelnumber": "VersaLink C7125",
"vendor": "Xerox",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/Versalink-C7125.png"
},
{
"modelnumber": "ZD621",
@@ -1528,7 +1602,8 @@
{
"modelnumber": "ZT411",
"vendor": "Zebra",
"modeltype": "Printer"
"modeltype": "Printer",
"imageurl": "/images/models/printers/zt411.png"
},
{
"modelnumber": "CONTURA G2",
@@ -1539,6 +1614,132 @@
"modelnumber": "Redomatic 600",
"vendor": "Zoller",
"modeltype": "Measuring Machine"
},
{
"modelnumber": "32i-B",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 32i-MODEL B Controller"
},
{
"modelnumber": "Panel i",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Panel i Controller"
},
{
"modelnumber": "SIEMENS SIMATIC PANEL TOUCH",
"vendor": "Siemens",
"modeltype": "Controller",
"description": "SIEMENS SIMATIC PANEL TOUCH Controller"
},
{
"modelnumber": "31i-A5",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 31i-MODEL A5 Controller"
},
{
"modelnumber": "Professional 5",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Professional 5 Controller"
},
{
"modelnumber": "31i-B5",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 31i-MODEL B5 Controller"
},
{
"modelnumber": "R-30iB",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC System R-30iB Controller"
},
{
"modelnumber": "18i-TB",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 18i-TB Controller"
},
{
"modelnumber": "31i",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 31i Controller"
},
{
"modelnumber": "Power Motion i-A",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Power Motion i-MODEL A Controller"
},
{
"modelnumber": "Allen-Bradley",
"vendor": "Allen-Bradley",
"modeltype": "Controller",
"description": "Allen-Bradley Controller"
},
{
"modelnumber": "ZOLLER",
"vendor": "Zoller",
"modeltype": "Controller",
"description": "ZOLLER Controller"
},
{
"modelnumber": "SIEMENS SINUMERIK",
"vendor": "Siemens",
"modeltype": "Controller",
"description": "SIEMENS SINUMERIK Controller"
},
{
"modelnumber": "31i-B",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 31i-MODEL B Controller"
},
{
"modelnumber": "0i-TC",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 0i-TC Controller"
},
{
"modelnumber": "SIEMENS",
"vendor": "Siemens",
"modeltype": "Controller",
"description": "SIEMENS Controller"
},
{
"modelnumber": "OKUMA OSP-P300LA",
"vendor": "Okuma",
"modeltype": "Controller",
"description": "OKUMA OSP-P300LA Controller"
},
{
"modelnumber": "OKUMA OSP-P300L",
"vendor": "Okuma",
"modeltype": "Controller",
"description": "OKUMA OSP-P300L Controller"
},
{
"modelnumber": "31i-A",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC Series 31i-MODEL A Controller"
},
{
"modelnumber": "FIDIA C20",
"vendor": "Fidia",
"modeltype": "Controller",
"description": "FIDIA C20 Controller"
},
{
"modelnumber": "R-30iA",
"vendor": "Fanuc",
"modeltype": "Controller",
"description": "FANUC System R-30iA Controller"
}
],
"modelsupplies": [