You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expose UCI subnet import and OpenWrt-export CSV host import in the UI, implement parsing/conversion helpers, and apply several usability and rendering fixes.
Changes:
- ARCHITECTURE.md: update status notes to reflect implemented protocol/port matching, zone inference, network importers, import/export and usability improvements; add script entry and bump last-updated date.
- public/index.html: UI/CSS additions (file-label, button styles, graph expand mode, show-more row), fixed align-items spelling, added UCI subnet input and import controls, bulk-import help box linking to scripts/openwrt_export_hosts.sh, support for OpenWrt export CSV format, reset confirmation for loading example, import/session UX changes (import as labelled file control, renamed buttons), relationship preview with show-more control, and graph expand/collapse behavior.
- JS: implemented parseUciSubnetMappings, parseUciAssignment, networkToCidr/netmask parsing utilities, parseOpenWrtExportCsvLine, CSV heuristics (looksLikeDeviceCsv, improved header detection and mapping), subnet merge/update flows, relationship preview limiting, and other integration glue.
- scripts/openwrt_export_hosts.sh: improved DHCP lease export script to compute CIDRs from ip/netmask (prefix/netmask helpers), robust header and file checks, output format documented and example preserved.
Why: These changes enable users to import subnet mappings from OpenWrt UCI exports and to bulk-import hosts from the helper export script, improve UX for importing/exporting sessions and the graph visualiser, and align the docs with implemented functionality.
Copy file name to clipboardExpand all lines: ARCHITECTURE.md
+19-38Lines changed: 19 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,6 +29,8 @@ This is a visual analysis tool, not a full OpenWrt firewall simulator. The decis
29
29
openwrt-firewall-visualiser/
30
30
├── README.md # Placeholder project documentation
31
31
├── ARCHITECTURE.md # This architecture guide
32
+
├── scripts/
33
+
│ └── openwrt_export_hosts.sh
32
34
└── public/
33
35
└── index.html # Complete single-file application
34
36
```
@@ -203,7 +205,7 @@ Device checks run in two steps:
203
205
2. If no specific rule matches, fall back to evaluateZonePath().
204
206
```
205
207
206
-
The parser stores `proto` and `dest_port`, but the current decision engine does not use protocol or port matching. That should be addressed before presenting the app as an accurate per-service firewall analyser.
208
+
When protocol or destination port criteria are supplied in the path tester, the decision engine matches them against `proto` and `dest_port` fields. Empty criteria continue to behave as broad "any protocol / any port" checks.
207
209
208
210
## Phase D: View Rendering
209
211
@@ -350,7 +352,7 @@ The example is useful for demonstrating the relationship views, but it should no
350
352
| Manual device mapping | Accurate device context depends on user input |
351
353
| Simplified parser | Good for common UCI files, not a complete UCI interpreter |
352
354
| Simplified decision engine | Useful for visual exploration, not a full firewall simulation |
353
-
|Protocol and port fields are not evaluated | Per-service conclusions may be inaccurate|
355
+
|Simplified protocol and port matching | Handles common protocol and port/range checks, but not every OpenWrt match expression|
354
356
| Browser-local persistence | Saved state is per browser/profile unless exported as JSON |
0 commit comments