Nuno Duque Nunes
|
2a6648735e
|
refactor: config restructure, wgctl.json, data/ directory layout
- context.sh: .wgctl/{config,data,daemon} directory structure
- ctx::config_file: points to .wgctl/config/wgctl.json
- ctx::data: points to .wgctl/data/ (rules, identities, groups, etc.)
- ctx::peer_history: .wgctl/data/peer-history/
- config.module.sh: loads from wgctl.json via json::config_load
- config::_load_legacy: fallback for old wgctl.conf with migration warning
- json_helper.py: config_load() outputs KEY=value pairs from wgctl.json
- cmd::config::migrate: converts wgctl.conf → wgctl.json, moves data files
- cmd::config::_show: renamed from run body
- daemon/wgctl-monitor.py: updated PEER_HISTORY_DIR path
|
2026-05-27 01:37:28 +00:00 |
|
Nuno Duque Nunes
|
cf71e9f51a
|
test: add tests for all new features, fix bugs found by tests
- integration: logs query flags, hosts command, peer command sections
- unit: fmt::bytes, config::dns_string, parse_since, ui::group::status
- destructive: duplicate rule validation, peer update-dns/tunnel
- fix: config::allowed_ips_for used $2 instead of $1
- fix: identity rule assign exit_code unbound variable
- fix: ctx::identity → ctx::identities in peers::get_identity
- fix: peers::get_identity restored (needed for rule assign duplicate check)
- rule assign: blocks if rule already in peer's identity via peers::get_identity
- identity rule assign: --migrate removes conflicting direct peer rules
|
2026-05-26 00:09:30 +00:00 |
|
Nuno Duque Nunes
|
794e75bc9b
|
feat: duplicate rule validation, peer command, fallback DNS
- rule assign: block if rule already in peer's identity
- identity rule assign: --migrate flag to remove conflicting direct peer rules
- commands/peer.command.sh: update-dns and update-tunnel subcommands
- config.sh: config::dns_fallback, config::dns_string
- peers.module.sh: peers::get_display_subnet extraction
- wgctl peer update-dns --all: retrofits existing peer configs with fallback DNS
- wgctl.conf: WG_DNS_FALLBACK support
|
2026-05-25 21:39:17 +00:00 |
|
Nuno Duque Nunes
|
4dcf98b128
|
feat: tableless logs/watch layout with service annotations
- wgctl logs: tableless layout, fw/wg sections, --merged flag, --raw flag
- wgctl watch: tableless layout, service annotations, colored fw/wg labels
- wgctl rule list: tableless with +N/-N/+all indicators, inline extends
- wgctl activity: transfer totals and firewall drops per peer
- ui/logs.module.sh: fw_row, wg_row, watch rows, table versions kept
- ui/rule.module.sh: list_row, list_group_header, list_base_header
- fmt.sh: FMT_DATETIME_SHORT, updated fmt::set_date_format
- json_helper.py: fw_events with service annotation, wg_events with count
|
2026-05-23 03:24:20 +00:00 |
|
Nuno Duque Nunes
|
de1a44a7e4
|
finish base implementation
|
2026-05-20 21:49:44 +00:00 |
|
Nuno Duque Nunes
|
7323bf20f1
|
feat: main group display, group::has_peer, config validation, full block cleanup on unblock, ui::empty helper, blocks header count
|
2026-05-17 22:06:21 +00:00 |
|
Nuno Duque Nunes
|
6ac1a7d3a2
|
feat: rule inheritance, rule groups, rule inspect, ui::center, fw dedup, activity metrics
|
2026-05-13 22:44:07 +00:00 |
|
Nuno Duque Nunes
|
a7fd62ce32
|
refactor: group::each_peer helper, peer existence checks, group remove cleanup, watch multi-peer filter
|
2026-05-13 00:06:34 +00:00 |
|
Nuno Duque Nunes
|
0efa6c3a9e
|
feat: date format config, batch optimizations, list refactor, fw:: rename, .wgctl data dir
|
2026-05-11 22:27:33 +00:00 |
|
root
|
78f9caaf17
|
add wgctl
|
2026-05-06 23:02:12 +00:00 |
|