Discovery pipeline
A scan can tell you that a MAC address answered at an IP and that port 3000 looks like Grafana. It cannot know whether the device belongs in your inventory, whether its name is intentional, or whether an old relationship should be removed.
The pipeline preserves observations, generates suggestions, compares them with accepted inventory, and routes the differences through a review policy.
Pipeline stages
Evidence reinforces other evidence. A product string can identify an application; that application can support a device classification; the classification can improve a name candidate. The inference stage therefore repeats until nothing changes, with a maximum of three iterations.
Execution is bounded by limits on subjects, facts, candidates, and emitted artifacts. Rules use typed conditions rather than arbitrary code. The same input, rule versions, and inventory state should produce the same recommendation.
The current rule families
MiniPAM ships four groups of rules:
- Application recognition uses endpoint product, service, port, certificate, banner, CPE, and inferred-role evidence. Current examples recognize Grafana, Home Assistant, Proxmox VE, TrueNAS, Pi-hole, AdGuard Home, and other common small-network software.
- Device classification combines topology, operating-system, product, application, hostname, and vendor evidence. A configured gateway address is strong evidence; OS or product details can suggest a switch, firewall, NAS, printer, phone, UPS, camera, or other built-in type. Hostname-only clues are deliberately weaker.
- Device naming prefers a directly observed FQDN, then corroborated mDNS. A recognized application may provide a lower-confidence fallback name.
- Review policy decides whether the resulting operation is eligible to apply or must wait for a person.
The recognition and classification definitions are packaged, versioned YAML. Operators and developers can
inspect app-server/src/services/discovery/builtin_rules.yml and the ordered pipeline in
builtin_pipelines.yml; the generated app-server/docs/discovery-configuration-reference.md lists the
complete current contract.
What applies automatically today
The built-in review policy is intentionally conservative:
- removals and unlinks require review;
- creation of a new inventory resource requires review;
- only a safe update to an existing Managed value may auto-apply, and only with at least 0.90 confidence from direct or corroborated evidence;
- everything else falls back to review.
Hard guards still apply after the policy result. A rule cannot use an auto_apply result to bypass ownership,
conflict, or safety protections.

The queue groups proposed changes by discovered device and displays evidence status.
Customize review policy
Review-policy rules are in Discovery → Review queue → Rules & help. Keep fallback. Test policy changes against a queued recommendation before enabling broader automation.
The older observed-import.rules-paths configuration is separate. It extends legacy scored import heuristics;
it is not the discovery-intelligence recognition/classification pipeline described here.