<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PrintMaster Agent on PrintMaster Docs</title><link>https://docs.printmaster.work/components/agent/</link><description>Recent content in PrintMaster Agent on PrintMaster Docs</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://docs.printmaster.work/components/agent/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent Module Documentation</title><link>https://docs.printmaster.work/components/agent/historical-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.printmaster.work/components/agent/historical-overview/</guid><description>&lt;p&gt;&lt;strong&gt;Location&lt;/strong&gt;: &lt;code&gt;agent/agent/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The agent module handles network discovery protocols, device detection, SNMP operations, and live discovery methods. It sits between the scanner (device querying) and storage (persistence) layers.&lt;/p&gt;
&lt;h2 id="architecture-overview"&gt;Architecture Overview&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;agent/
├── detect.go # Main Discover() function, IP enumeration, ARP/ICMP
├── probe.go # TCP port probing, connectivity checks
├── parse.go # SNMP PDU parsing, OID interpretation
├── snmp.go # Legacy SNMP operations (being phased out)
├── snmp_iface.go # SNMP interface definitions
├── mdns.go # mDNS/Bonjour discovery
├── ssdp.go # SSDP/UPnP discovery
├── wsdiscovery.go # WS-Discovery protocol
├── snmptraps.go # SNMP trap listener
├── llmnr.go # LLMNR name resolution
├── arp.go # ARP table reading
├── merge.go # Device data merging and deduplication
├── helpers.go # Utility functions
├── metrics.go # Performance metrics collection
├── report.go # Scan result reporting
├── types.go # Data structures (PrinterInfo, ScanMeta, etc.)
├── config.go # Configuration structures
├── diagnostics.go # Diagnostic logging and debugging
├── update.go # Device update and refresh logic
└── vendor_roots.go # Vendor OID root definitions
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="discovery-methods"&gt;Discovery Methods&lt;/h2&gt;
&lt;h3 id="1-active-network-scanning-detectgo"&gt;1. Active Network Scanning (&lt;code&gt;detect.go&lt;/code&gt;)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt;: Enumerate IP addresses and perform liveness checks.&lt;/p&gt;</description></item><item><title>MIB profiles (mib_profiles/) and automation</title><link>https://docs.printmaster.work/components/agent/docs/mib-profiles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.printmaster.work/components/agent/docs/mib-profiles/</guid><description>&lt;p&gt;This document describes the lightweight JSON schema used to store manufacturer MIB profiles, recommended workflow for generating profiles from collected MIB walks, and how profiles can be distributed to agents.&lt;/p&gt;
&lt;p&gt;Schema (example keys)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vendor&lt;/code&gt; (string): short vendor id, e.g. &amp;ldquo;hp&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;enterprise_oid&lt;/code&gt; (string): vendor enterprise prefix, e.g. &amp;ldquo;1.3.6.1.4.1.11&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;version&lt;/code&gt; (string): profile version&lt;/li&gt;
&lt;li&gt;&lt;code&gt;canonical&lt;/code&gt; (map): semantic name -&amp;gt; OID (page_count, serial, supplies roots, etc.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;probes&lt;/code&gt; (array): recommended quick probe OIDs that are safe/cheap to GET during discovery&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sample_values&lt;/code&gt; (map): example values to help human review and tests&lt;/li&gt;
&lt;li&gt;&lt;code&gt;notes&lt;/code&gt; (string): freeform notes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Storage and runtime plan&lt;/p&gt;</description></item><item><title>REMAINING TASKS</title><link>https://docs.printmaster.work/components/agent/docs/remaining-tasks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.printmaster.work/components/agent/docs/remaining-tasks/</guid><description>&lt;p&gt;Remaining tasks for Printer MIB pairing &amp;amp; candidate workflows&lt;/p&gt;
&lt;p&gt;Overview&lt;/p&gt;
&lt;p&gt;This document lists remaining work items, priorities, acceptance criteria, and testing notes for the features implemented during the recent changes: pairing of list columns (name/level) from saved MIB walks, UI flow to inspect saved walks, and persisting candidate mappings.&lt;/p&gt;
&lt;p&gt;High-level goals&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Let the agent detect and present column-based consumable information (e.g. toner names and levels) from saved MIB walks.&lt;/li&gt;
&lt;li&gt;Allow users to persist discovered column mappings into vendor candidate profiles quickly and reliably.&lt;/li&gt;
&lt;li&gt;Provide robust normalization and tests for edge-cases across vendors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Priority tasks&lt;/p&gt;</description></item><item><title>Service Mode - Quick Reference</title><link>https://docs.printmaster.work/components/agent/service/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.printmaster.work/components/agent/service/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;PrintMaster Agent can run as a system service for production deployments. This ensures the agent starts automatically on boot and runs continuously in the background.&lt;/p&gt;
&lt;h2 id="commands"&gt;Commands&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Install service (requires admin/root)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;printmaster-agent --service install
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Start service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;printmaster-agent --service start
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Stop service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;printmaster-agent --service stop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Uninstall service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;printmaster-agent --service uninstall
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Run in foreground (testing)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;printmaster-agent --service run
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Interactive mode (default)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;printmaster-agent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="platform-specific-details"&gt;Platform-Specific Details&lt;/h2&gt;
&lt;h3 id="windows"&gt;Windows&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;: Administrator privileges&lt;/p&gt;</description></item></channel></rss>