Files
nx9-wg/test.log
T
thakaresandCopilot 2ac6c81dfe cli: avoid data-dir initialization for version; create db parent dirs; redact generated passwords in CLI output
- Prevent 'nx9-wg version' from creating data directories by avoiding database initialization.
- Create parent directories when an explicit --database path is provided.
- Redact printed generated administrator passwords; announce file path or redact instead.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-16 16:26:24 +05:30

2705 lines
91 KiB
Plaintext

============================================================================
01 — Binary and Version
============================================================================
>>> Version
/mnt/Programs/nx9-wg/target/release/nx9-wg version
[FAIL] Version (exit=1)
--- stderr ---
Failed to create data directory '/var/lib/nx9-wg': Permission denied (os error 13)
>>> Version JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --format json version
[FAIL] Version JSON (exit=1)
--- stderr ---
Failed to create data directory '/var/lib/nx9-wg': Permission denied (os error 13)
============================================================================
02 — Top-Level CLI Surface
============================================================================
>>> Top-level --help
/mnt/Programs/nx9-wg/target/release/nx9-wg --help
[PASS] Top-level --help
A high-performance, native Rust WireGuard management system with zero external runtime dependencies.
Usage: nx9-wg [OPTIONS] [COMMAND]
Commands:
serve Start the nx9-wg REST API and WebSocket daemon
init Initialize the administrator account
system System status, health, and settings
admin Administrator, session, and token management
interface WireGuard interface management
peer WireGuard peer enrollment and operations
network Subnet network management
route Kernel routing table management
firewall nftables firewall management
nat NAT masquerade management
forwarding Kernel IP packet forwarding management
reconcile Reconciliation between SQLite desired state and live kernel state
backup Database backup and restore operations
audit Security and operational audit trail
live Query live Linux kernel state
diagnostics Native Linux and WireGuard diagnostics inspection
profile Client environment and MTU profile management
version Display version and build information
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <CONFIG>
Path to configuration file
[env: NX9_WG_CONFIG=]
-d, --data-dir <DATA_DIR>
Path to database data directory
[env: NX9_WG_DATA_DIR=]
--database <DATABASE>
Specific SQLite database file path or URL
[env: NX9_WG_DATABASE=]
--format <FORMAT>
Output format
[default: table]
[possible values: table, json, yaml, csv]
--json
Output strictly in JSON format
-q, --quiet
Suppress status output
-v, --verbose
Enable verbose output
--log-level <LOG_LEVEL>
Log verbosity level (trace, debug, info, warn, error)
[env: NX9_WG_LOG_LEVEL=]
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
============================================================================
03 — Top-Level Command Help Audit
============================================================================
[PASS] serve --help
[PASS] init --help
[PASS] system --help
[PASS] admin --help
[PASS] interface --help
[PASS] peer --help
[PASS] network --help
[PASS] route --help
[PASS] firewall --help
[PASS] nat --help
[PASS] forwarding --help
[PASS] reconcile --help
[PASS] backup --help
[PASS] audit --help
[PASS] live --help
[PASS] diagnostics --help
[PASS] profile --help
[PASS] version --help
============================================================================
04 — Feature/Subcommand Help Audit
============================================================================
[PASS] live interface --help
[PASS] live peer --help
[PASS] live routes --help
[PASS] live firewall --help
[PASS] live forwarding --help
[PASS] live nat --help
[PASS] audit list --help
[PASS] audit show --help
[PASS] backup create --help
[PASS] backup list --help
[PASS] backup show --help
[PASS] backup verify --help
[PASS] backup restore --help
[PASS] backup delete --help
[PASS] nat status --help
[PASS] nat enable --help
[PASS] nat disable --help
[PASS] nat list --help
[PASS] nat sync --help
[PASS] peer list --help
[PASS] peer show --help
[PASS] peer create --help
[PASS] peer update --help
[PASS] peer enable --help
[PASS] peer disable --help
[PASS] peer revoke --help
[PASS] peer delete --help
[PASS] peer status --help
[PASS] peer config --help
[PASS] peer qr --help
[PASS] peer expire --help
[PASS] peer lifecycle --help
[PASS] reconcile status --help
[PASS] reconcile plan --help
[PASS] reconcile apply --help
[PASS] reconcile verify --help
[PASS] system info --help
[PASS] system health --help
[PASS] system settings --help
[PASS] profile list --help
[PASS] profile show --help
[PASS] profile validate --help
[PASS] profile resolve --help
[PASS] network list --help
[PASS] network show --help
[PASS] network create --help
[PASS] network update --help
[PASS] network delete --help
[PASS] network available --help
[PASS] network allocations --help
[PASS] firewall list --help
[PASS] firewall show --help
[PASS] firewall add --help
[PASS] firewall update --help
[PASS] firewall delete --help
[PASS] firewall enable --help
[PASS] firewall disable --help
[PASS] firewall status --help
[PASS] firewall sync --help
[PASS] forwarding status --help
[PASS] forwarding enable --help
[PASS] forwarding disable --help
[PASS] forwarding sync --help
[PASS] interface list --help
[PASS] interface show --help
[PASS] interface create --help
[PASS] interface update --help
[PASS] interface enable --help
[PASS] interface disable --help
[PASS] interface delete --help
[PASS] interface status --help
[PASS] interface reconcile --help
[PASS] route list --help
[PASS] route show --help
[PASS] route add --help
[PASS] route update --help
[PASS] route delete --help
[PASS] route status --help
[PASS] route sync --help
[PASS] admin status --help
[PASS] admin create --help
[PASS] admin password --help
[PASS] admin sessions --help
[PASS] admin tokens --help
============================================================================
05 — Administrator Bootstrap
============================================================================
>>> Initialize administrator with generated password
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db init --generate-password --write-password-file /tmp/nx9-wg-cli-test.u7uMLB/admin-password
[PASS] Initialize administrator with generated password
2026-08-16T10:46:32.751782Z  INFO nx9_wg_api::auth::bootstrap: Administrator initialized successfully username=admin source=secure random generation
Administrator initialized successfully.
Username: admin
Source: secure random generation
Generated Password (SAVE THIS IMMEDIATELY):
========================================
q2YKIjqIogWH=t9ISk@m#Bug
========================================
created_at : 2026-08-16T10:46:32.751497912
id : 1
last_login_at : null
last_login_ip : null
password_hash : $argon2id$v=19$m=19456,t=2,p=1$hQkBKcRbtIXRHCv6OuOUfA$qqbIvjMslEdA7OCPEYpcRjYtgmejjAan6Fxhday9GLM
totp_enabled : false
totp_secret : null
updated_at : 2026-08-16T10:46:32.751497912
username : admin
[PASS] Generated administrator password file exists
============================================================================
06 — System
============================================================================
>>> System info
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db system info
[PASS] System info
arch : x86_64
config_file : /etc/nx9-wg/config.toml
data_dir : /tmp/nx9-wg-cli-test.u7uMLB/data
database_path : /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db
log_level : info
os : linux
reconciliation_interval_secs: 60
session_expiry_hours : 24
version : 0.1.0
>>> System health
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db system health
[PASS] System health
database : connected
status : healthy
timestamp : 2026-08-16T10:46:32.762713232+00:00
>>> System info JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system info
[PASS] System info JSON
{
"arch": "x86_64",
"config_file": "/etc/nx9-wg/config.toml",
"data_dir": "/tmp/nx9-wg-cli-test.u7uMLB/data",
"database_path": "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db",
"log_level": "info",
"os": "linux",
"reconciliation_interval_secs": 60,
"session_expiry_hours": 24,
"version": "0.1.0"
}
>>> System health JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system health
[PASS] System health JSON
{
"database": "connected",
"status": "healthy",
"timestamp": "2026-08-16T10:46:32.773865263+00:00"
}
>>> System info YAML
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml system info
[PASS] System info YAML
arch: "x86_64"
config_file: "/etc/nx9-wg/config.toml"
data_dir: "/tmp/nx9-wg-cli-test.u7uMLB/data"
database_path: "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db"
log_level: "info"
os: "linux"
reconciliation_interval_secs: 60
session_expiry_hours: 24
version: "0.1.0"
>>> System health CSV
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv system health
[PASS] System health CSV
database,status,timestamp
connected,healthy,2026-08-16T10:46:32.785108766+00:00
============================================================================
07 — Administrator / Authentication
============================================================================
>>> Admin status
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db admin status
[PASS] Admin status
created_at : 2026-08-16T10:46:32
last_login_at : null
last_login_ip : null
totp_enabled : false
username : admin
>>> Admin status JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json admin status
[PASS] Admin status JSON
{
"created_at": "2026-08-16T10:46:32",
"last_login_at": null,
"last_login_ip": null,
"totp_enabled": false,
"username": "admin"
}
============================================================================
08 — Client Environment / MTU Profiles
============================================================================
>>> Profile list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile list
[PASS] Profile list
[
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Android cellular client profile with 1280 MTU and 25s keepalive",
"device": "android",
"dns": null,
"id": "android-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Android Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Default CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Default Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "web",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Web client profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-web",
"is_builtin": true,
"mtu": 1420,
"name": "Default Web",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wifi",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wifi",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wi-Fi",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wired",
"created_at": "2026-08-16T10:46:32",
"description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wired",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wired",
"nat_type": "direct",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "jio-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Jio Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "jio",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "starlink-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Starlink CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "starlink",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "tmobile-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "T-Mobile Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "tmobile",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "verizon-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Verizon Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "verizon",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive",
"device": "ios",
"dns": null,
"id": "ios-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "iOS Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
}
]
>>> Profile list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile list
[PASS] Profile list JSON
[
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Android cellular client profile with 1280 MTU and 25s keepalive",
"device": "android",
"dns": null,
"id": "android-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Android Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Default CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Default Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "web",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Web client profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-web",
"is_builtin": true,
"mtu": 1420,
"name": "Default Web",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wifi",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wifi",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wi-Fi",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wired",
"created_at": "2026-08-16T10:46:32",
"description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wired",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wired",
"nat_type": "direct",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "jio-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Jio Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "jio",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "starlink-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Starlink CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "starlink",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "tmobile-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "T-Mobile Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "tmobile",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "verizon-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Verizon Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "verizon",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive",
"device": "ios",
"dns": null,
"id": "ios-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "iOS Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
}
]
>>> Default mobile profile
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-mobile
[PASS] Default mobile profile
connection_type : mobile
created_at : 2026-08-16T10:46:32
description : Standard mobile carrier profile with 1280 MTU and 25s keepalive
device : null
dns : null
id : default-mobile
is_builtin : true
mtu : 1280
name : Default Mobile
nat_type : unknown
persistent_keepalive : 25
provider : null
updated_at : 2026-08-16T10:46:32
>>> Default CGNAT profile
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-cgnat
[PASS] Default CGNAT profile
connection_type : other
created_at : 2026-08-16T10:46:32
description : Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive
device : null
dns : null
id : default-cgnat
is_builtin : true
mtu : 1360
name : Default CGNAT
nat_type : cgnat
persistent_keepalive : 25
provider : null
updated_at : 2026-08-16T10:46:32
>>> Default Wi-Fi profile
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-wifi
[PASS] Default Wi-Fi profile
connection_type : wifi
created_at : 2026-08-16T10:46:32
description : Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive
device : null
dns : null
id : default-wifi
is_builtin : true
mtu : 1420
name : Default Wi-Fi
nat_type : unknown
persistent_keepalive : 25
provider : null
updated_at : 2026-08-16T10:46:32
>>> Default Web profile
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-web
[PASS] Default Web profile
connection_type : web
created_at : 2026-08-16T10:46:32
description : Standard Web client profile with 1420 MTU and 25s keepalive
device : null
dns : null
id : default-web
is_builtin : true
mtu : 1420
name : Default Web
nat_type : unknown
persistent_keepalive : 25
provider : null
updated_at : 2026-08-16T10:46:32
>>> Default Wired profile
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-wired
[PASS] Default Wired profile
connection_type : wired
created_at : 2026-08-16T10:46:32
description : High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive
device : null
dns : null
id : default-wired
is_builtin : true
mtu : 1420
name : Default Wired
nat_type : direct
persistent_keepalive : 25
provider : null
updated_at : 2026-08-16T10:46:32
>>> Validate MTU 1280
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1280
[PASS] Validate MTU 1280
is_jumbo : false
message : MTU is in valid standard range (1280-1500)
mtu : 1280
valid : true
>>> Validate MTU 1360
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1360
[PASS] Validate MTU 1360
is_jumbo : false
message : MTU is in valid standard range (1280-1500)
mtu : 1360
valid : true
>>> Validate MTU 1420
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1420
[PASS] Validate MTU 1420
is_jumbo : false
message : MTU is in valid standard range (1280-1500)
mtu : 1420
valid : true
>>> Validate MTU 1500
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1500
[PASS] Validate MTU 1500
is_jumbo : false
message : MTU is in valid standard range (1280-1500)
mtu : 1500
valid : true
>>> Resolve Android Mobile CGNAT
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection mobile --device android --nat cgnat
[PASS] Resolve Android Mobile CGNAT
{
"applied_profile_id": "android-mobile",
"applied_profile_name": "Android Mobile",
"connection_type": "mobile",
"device": "android",
"dns": null,
"is_manually_overridden": false,
"mtu": 1280,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"warning": null
}
>>> Resolve iOS Mobile CGNAT
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection mobile --device ios --nat cgnat
[PASS] Resolve iOS Mobile CGNAT
{
"applied_profile_id": "ios-mobile",
"applied_profile_name": "iOS Mobile",
"connection_type": "mobile",
"device": "ios",
"dns": null,
"is_manually_overridden": false,
"mtu": 1280,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"warning": null
}
>>> Resolve Linux Wi-Fi Direct
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection wifi --device linux --nat direct
[PASS] Resolve Linux Wi-Fi Direct
{
"applied_profile_id": "default-wifi",
"applied_profile_name": "Default Wi-Fi",
"connection_type": "wifi",
"device": "linux",
"dns": null,
"is_manually_overridden": false,
"mtu": 1420,
"nat_type": "direct",
"persistent_keepalive": 25,
"provider": null,
"warning": null
}
>>> Resolve Windows Wired
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection wired --device windows --nat direct
[PASS] Resolve Windows Wired
{
"applied_profile_id": "default-wired",
"applied_profile_name": "Default Wired",
"connection_type": "wired",
"device": "windows",
"dns": null,
"is_manually_overridden": false,
"mtu": 1420,
"nat_type": "direct",
"persistent_keepalive": 25,
"provider": null,
"warning": null
}
>>> Resolve Jio Mobile CGNAT
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider jio --connection mobile --nat cgnat
[PASS] Resolve Jio Mobile CGNAT
{
"applied_profile_id": "jio-mobile",
"applied_profile_name": "Jio Mobile",
"connection_type": "mobile",
"device": null,
"dns": null,
"is_manually_overridden": false,
"mtu": 1280,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "jio",
"warning": null
}
>>> Resolve T-Mobile Mobile CGNAT
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider tmobile --connection mobile --nat cgnat
[PASS] Resolve T-Mobile Mobile CGNAT
{
"applied_profile_id": "tmobile-mobile",
"applied_profile_name": "T-Mobile Mobile",
"connection_type": "mobile",
"device": null,
"dns": null,
"is_manually_overridden": false,
"mtu": 1280,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "tmobile",
"warning": null
}
>>> Resolve Verizon Mobile CGNAT
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider verizon --connection mobile --nat cgnat
[PASS] Resolve Verizon Mobile CGNAT
{
"applied_profile_id": "verizon-mobile",
"applied_profile_name": "Verizon Mobile",
"connection_type": "mobile",
"device": null,
"dns": null,
"is_manually_overridden": false,
"mtu": 1280,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "verizon",
"warning": null
}
>>> Resolve Starlink CGNAT
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider starlink --connection other --nat cgnat
[PASS] Resolve Starlink CGNAT
{
"applied_profile_id": "starlink-cgnat",
"applied_profile_name": "Starlink CGNAT",
"connection_type": "other",
"device": null,
"dns": null,
"is_manually_overridden": false,
"mtu": 1360,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "starlink",
"warning": null
}
>>> Resolve manual MTU override
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection mobile --device android --nat cgnat --mtu 1300
[PASS] Resolve manual MTU override
{
"applied_profile_id": "android-mobile",
"applied_profile_name": "Android Mobile",
"connection_type": "mobile",
"device": "android",
"dns": null,
"is_manually_overridden": true,
"mtu": 1300,
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"warning": "Client MTU has been manually overridden by administrator."
}
>>> Resolve explicit profile
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --profile android-mobile
[PASS] Resolve explicit profile
{
"applied_profile_id": "android-mobile",
"applied_profile_name": "Android Mobile",
"connection_type": "mobile",
"device": "android",
"dns": null,
"is_manually_overridden": false,
"mtu": 1280,
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"warning": null
}
============================================================================
09 — Network Management
============================================================================
>>> Network list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db network list
[PASS] Network list
(No items found)
>>> Network list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json network list
[PASS] Network list JSON
[]
============================================================================
10 — WireGuard Interface Management
============================================================================
>>> Interface list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db interface list
[PASS] Interface list
(No items found)
>>> Interface list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json interface list
[PASS] Interface list JSON
[]
============================================================================
11 — Peer Management
============================================================================
>>> Peer list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db peer list
[PASS] Peer list
(No items found)
>>> Peer list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json peer list
[PASS] Peer list JSON
[]
============================================================================
12 — Routing
============================================================================
>>> Route list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db route list
[PASS] Route list
(No items found)
>>> Route list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json route list
[PASS] Route list JSON
[]
============================================================================
13 — Firewall
============================================================================
>>> Firewall list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db firewall list
[PASS] Firewall list
(No items found)
>>> Firewall list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json firewall list
[PASS] Firewall list JSON
[]
============================================================================
14 — NAT
============================================================================
>>> NAT status
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db nat status
[PASS] NAT status
managed_subnets : []
nat_masquerade_enabled : true
table : inet nx9_wg
>>> NAT list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db nat list
[PASS] NAT list
(No items found)
>>> NAT status JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json nat status
[PASS] NAT status JSON
{
"managed_subnets": [],
"nat_masquerade_enabled": true,
"table": "inet nx9_wg"
}
============================================================================
15 — IP Forwarding
============================================================================
>>> Forwarding status
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db forwarding status
[PASS] Forwarding status
ipv4_enabled : false
ipv6_enabled : false
>>> Forwarding status JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json forwarding status
[PASS] Forwarding status JSON
{
"ipv4_enabled": false,
"ipv6_enabled": false
}
============================================================================
16 — Reconciliation
============================================================================
>>> Reconciliation status
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db reconcile status
[PASS] Reconciliation status
drift_detected : false
firewall_changes : 0
interface_changes : 0
peer_changes : 0
route_changes : 0
>>> Reconciliation plan
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db reconcile plan
[PASS] Reconciliation plan
actions : []
firewall_changes : 0
forwarding_changes : 0
has_drift : false
interface_changes : 0
peer_changes : 0
route_changes : 0
>>> Reconciliation verify
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db reconcile verify
[PASS] Reconciliation verify
Zero drift detected: SQLite and kernel state are in full synchronization.
>>> Reconciliation status JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json reconcile status
[PASS] Reconciliation status JSON
{
"drift_detected": false,
"firewall_changes": 0,
"interface_changes": 0,
"peer_changes": 0,
"route_changes": 0
}
============================================================================
17 — Backup
============================================================================
>>> Backup list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db backup list
[PASS] Backup list
(No items found)
>>> Backup list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json backup list
[PASS] Backup list JSON
[]
============================================================================
18 — Audit
============================================================================
>>> Audit list
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db audit list
[PASS] Audit list
[
{
"actor": "admin",
"created_at": "2026-08-16T10:46:32",
"event_type": "admin_initialized",
"id": 1,
"ip_address": null,
"message": "Administrator initialized via secure random generation",
"metadata": null,
"resource_id": "1",
"resource_type": "admin"
}
]
>>> Audit list JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json audit list
[PASS] Audit list JSON
[
{
"actor": "admin",
"created_at": "2026-08-16T10:46:32",
"event_type": "admin_initialized",
"id": 1,
"ip_address": null,
"message": "Administrator initialized via secure random generation",
"metadata": null,
"resource_id": "1",
"resource_type": "admin"
}
]
============================================================================
19 — Live Linux State
============================================================================
[SKIP] Live interface list — use LIVE=1
[SKIP] Live peer list — use LIVE=1
[SKIP] Live routes — use LIVE=1
[SKIP] Live firewall — use LIVE=1
[SKIP] Live forwarding — use LIVE=1
[SKIP] Live NAT — use LIVE=1
============================================================================
20 — Native Diagnostics
============================================================================
>>> Diagnostics all
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics all
[PASS] Diagnostics all
[
{
"checks": [
{
"check_name": "hostname",
"diagnostic_message": "System hostname read successfully",
"expected_value": null,
"observed_value": "thakares-ideapad",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "os_architecture",
"diagnostic_message": "Supported target platform",
"expected_value": "linux-*",
"observed_value": "linux-x86_64",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "kernel_version",
"diagnostic_message": "Linux kernel release inspected",
"expected_value": null,
"observed_value": "7.1.8-arch1-3",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "memory_status",
"diagnostic_message": "System memory available",
"expected_value": null,
"observed_value": "MemTotal: 28526564 kB",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "sqlite_persistence",
"diagnostic_message": "SQLite WAL persistence layer is responsive",
"expected_value": "connected_and_healthy",
"observed_value": "connected_and_healthy",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "system",
"timestamp": "2026-08-16T10:46:33.050682139"
},
{
"checks": [
{
"check_name": "linux_network_interfaces",
"diagnostic_message": "Network interfaces discovered in kernel",
"expected_value": null,
"observed_value": "2 interfaces (lo, wlp2s0)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "dns_nameservers",
"diagnostic_message": "System DNS nameservers configured",
"expected_value": null,
"observed_value": "127.0.0.1",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "network",
"timestamp": "2026-08-16T10:46:33.050715281"
},
{
"checks": [
{
"check_name": "default_gateway_route",
"diagnostic_message": "Default route to WAN/gateway is present",
"expected_value": "default_gateway_present",
"observed_value": "default_gateway_present",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "wan",
"timestamp": "2026-08-16T10:46:33.050732183"
},
{
"checks": [
{
"check_name": "configured_interfaces",
"diagnostic_message": "No WireGuard interfaces configured yet",
"expected_value": null,
"observed_value": "0 interfaces",
"remediation_hint": "Create an interface using 'nx9-wg interface create'",
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "wireguard",
"timestamp": "2026-08-16T10:46:33.050785273"
},
{
"checks": [
{
"check_name": "configured_routes",
"diagnostic_message": "Kernel routing rules configured in database",
"expected_value": null,
"observed_value": "0 total (0 active)",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "routing",
"timestamp": "2026-08-16T10:46:33.051082712"
},
{
"checks": [
{
"check_name": "ipv4_forwarding",
"diagnostic_message": "IPv4 packet forwarding is disabled in sysctl; VPN clients cannot route traffic",
"expected_value": "enabled",
"observed_value": "disabled",
"remediation_hint": "Enable IP forwarding with 'nx9-wg forwarding enable'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "forwarding",
"timestamp": "2026-08-16T10:46:33.051118900"
},
{
"checks": [
{
"check_name": "firewall_rules_count",
"diagnostic_message": "Configured nftables packet filtering rules",
"expected_value": null,
"observed_value": "0 total (0 active)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "nftables_table_nx9_wg",
"diagnostic_message": "Dedicated table inet nx9_wg presence in kernel nftables",
"expected_value": "active",
"observed_value": "not_loaded",
"remediation_hint": "Synchronize firewall with 'nx9-wg firewall sync'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "firewall",
"timestamp": "2026-08-16T10:46:33.051174264"
},
{
"checks": [
{
"check_name": "nat_setting",
"diagnostic_message": "NAT masquerade setting configured in database",
"expected_value": null,
"observed_value": "enabled",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "nat",
"timestamp": "2026-08-16T10:46:33.051223957"
},
{
"checks": [
{
"check_name": "client_profile_mobile_recommendation",
"diagnostic_message": "Recommended MTU for mobile/cellular connections is 1280 to prevent carrier fragmentation",
"expected_value": "1280 bytes",
"observed_value": "1280 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "client_profile_cgnat_recommendation",
"diagnostic_message": "Recommended MTU for CGNAT connections is 1360 to accommodate carrier-grade NAT encapsulation",
"expected_value": "1360 bytes",
"observed_value": "1360 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "client_profile_wifi_recommendation",
"diagnostic_message": "Recommended MTU for standard Wi-Fi and wired connections is 1420 bytes",
"expected_value": "1420 bytes",
"observed_value": "1420 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "mtu",
"timestamp": "2026-08-16T10:46:33.051301413"
},
{
"checks": [
{
"check_name": "overall_drift",
"diagnostic_message": "Discrepancies detected between SQLite desired state and Linux kernel state",
"expected_value": "zero_drift",
"observed_value": "1 drift actions pending",
"remediation_hint": "Execute 'nx9-wg reconcile apply' to synchronize changes",
"status": "warning"
},
{
"check_name": "drift:forwarding:enable_forwarding",
"diagnostic_message": "IPv4 forwarding is disabled in kernel sysctl; enable for VPN routing",
"expected_value": null,
"observed_value": "ipv4_forward",
"remediation_hint": "Run 'nx9-wg reconcile apply'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "reconciliation",
"timestamp": "2026-08-16T10:46:33.051662923"
}
]
>>> Diagnostics all JSON
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json diagnostics all
[PASS] Diagnostics all JSON
[
{
"checks": [
{
"check_name": "hostname",
"diagnostic_message": "System hostname read successfully",
"expected_value": null,
"observed_value": "thakares-ideapad",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "os_architecture",
"diagnostic_message": "Supported target platform",
"expected_value": "linux-*",
"observed_value": "linux-x86_64",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "kernel_version",
"diagnostic_message": "Linux kernel release inspected",
"expected_value": null,
"observed_value": "7.1.8-arch1-3",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "memory_status",
"diagnostic_message": "System memory available",
"expected_value": null,
"observed_value": "MemTotal: 28526564 kB",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "sqlite_persistence",
"diagnostic_message": "SQLite WAL persistence layer is responsive",
"expected_value": "connected_and_healthy",
"observed_value": "connected_and_healthy",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "system",
"timestamp": "2026-08-16T10:46:33.056557217"
},
{
"checks": [
{
"check_name": "linux_network_interfaces",
"diagnostic_message": "Network interfaces discovered in kernel",
"expected_value": null,
"observed_value": "2 interfaces (lo, wlp2s0)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "dns_nameservers",
"diagnostic_message": "System DNS nameservers configured",
"expected_value": null,
"observed_value": "127.0.0.1",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "network",
"timestamp": "2026-08-16T10:46:33.056588836"
},
{
"checks": [
{
"check_name": "default_gateway_route",
"diagnostic_message": "Default route to WAN/gateway is present",
"expected_value": "default_gateway_present",
"observed_value": "default_gateway_present",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "wan",
"timestamp": "2026-08-16T10:46:33.056605968"
},
{
"checks": [
{
"check_name": "configured_interfaces",
"diagnostic_message": "No WireGuard interfaces configured yet",
"expected_value": null,
"observed_value": "0 interfaces",
"remediation_hint": "Create an interface using 'nx9-wg interface create'",
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "wireguard",
"timestamp": "2026-08-16T10:46:33.056658106"
},
{
"checks": [
{
"check_name": "configured_routes",
"diagnostic_message": "Kernel routing rules configured in database",
"expected_value": null,
"observed_value": "0 total (0 active)",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "routing",
"timestamp": "2026-08-16T10:46:33.056971756"
},
{
"checks": [
{
"check_name": "ipv4_forwarding",
"diagnostic_message": "IPv4 packet forwarding is disabled in sysctl; VPN clients cannot route traffic",
"expected_value": "enabled",
"observed_value": "disabled",
"remediation_hint": "Enable IP forwarding with 'nx9-wg forwarding enable'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "forwarding",
"timestamp": "2026-08-16T10:46:33.056994549"
},
{
"checks": [
{
"check_name": "firewall_rules_count",
"diagnostic_message": "Configured nftables packet filtering rules",
"expected_value": null,
"observed_value": "0 total (0 active)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "nftables_table_nx9_wg",
"diagnostic_message": "Dedicated table inet nx9_wg presence in kernel nftables",
"expected_value": "active",
"observed_value": "not_loaded",
"remediation_hint": "Synchronize firewall with 'nx9-wg firewall sync'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "firewall",
"timestamp": "2026-08-16T10:46:33.057044072"
},
{
"checks": [
{
"check_name": "nat_setting",
"diagnostic_message": "NAT masquerade setting configured in database",
"expected_value": null,
"observed_value": "enabled",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "nat",
"timestamp": "2026-08-16T10:46:33.057081563"
},
{
"checks": [
{
"check_name": "client_profile_mobile_recommendation",
"diagnostic_message": "Recommended MTU for mobile/cellular connections is 1280 to prevent carrier fragmentation",
"expected_value": "1280 bytes",
"observed_value": "1280 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "client_profile_cgnat_recommendation",
"diagnostic_message": "Recommended MTU for CGNAT connections is 1360 to accommodate carrier-grade NAT encapsulation",
"expected_value": "1360 bytes",
"observed_value": "1360 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "client_profile_wifi_recommendation",
"diagnostic_message": "Recommended MTU for standard Wi-Fi and wired connections is 1420 bytes",
"expected_value": "1420 bytes",
"observed_value": "1420 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "mtu",
"timestamp": "2026-08-16T10:46:33.057185478"
},
{
"checks": [
{
"check_name": "overall_drift",
"diagnostic_message": "Discrepancies detected between SQLite desired state and Linux kernel state",
"expected_value": "zero_drift",
"observed_value": "1 drift actions pending",
"remediation_hint": "Execute 'nx9-wg reconcile apply' to synchronize changes",
"status": "warning"
},
{
"check_name": "drift:forwarding:enable_forwarding",
"diagnostic_message": "IPv4 forwarding is disabled in kernel sysctl; enable for VPN routing",
"expected_value": null,
"observed_value": "ipv4_forward",
"remediation_hint": "Run 'nx9-wg reconcile apply'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "reconciliation",
"timestamp": "2026-08-16T10:46:33.057552368"
}
]
>>> Diagnostics: system
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics system
[PASS] Diagnostics: system
[
{
"checks": [
{
"check_name": "hostname",
"diagnostic_message": "System hostname read successfully",
"expected_value": null,
"observed_value": "thakares-ideapad",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "os_architecture",
"diagnostic_message": "Supported target platform",
"expected_value": "linux-*",
"observed_value": "linux-x86_64",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "kernel_version",
"diagnostic_message": "Linux kernel release inspected",
"expected_value": null,
"observed_value": "7.1.8-arch1-3",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "memory_status",
"diagnostic_message": "System memory available",
"expected_value": null,
"observed_value": "MemTotal: 28526564 kB",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "sqlite_persistence",
"diagnostic_message": "SQLite WAL persistence layer is responsive",
"expected_value": "connected_and_healthy",
"observed_value": "connected_and_healthy",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "system",
"timestamp": "2026-08-16T10:46:33.063582958"
}
]
>>> Diagnostics: network
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics network
[PASS] Diagnostics: network
[
{
"checks": [
{
"check_name": "linux_network_interfaces",
"diagnostic_message": "Network interfaces discovered in kernel",
"expected_value": null,
"observed_value": "2 interfaces (lo, wlp2s0)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "dns_nameservers",
"diagnostic_message": "System DNS nameservers configured",
"expected_value": null,
"observed_value": "127.0.0.1",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "network",
"timestamp": "2026-08-16T10:46:33.068654886"
}
]
>>> Diagnostics: wan
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics wan
[PASS] Diagnostics: wan
[
{
"checks": [
{
"check_name": "default_gateway_route",
"diagnostic_message": "Default route to WAN/gateway is present",
"expected_value": "default_gateway_present",
"observed_value": "default_gateway_present",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "wan",
"timestamp": "2026-08-16T10:46:33.073128679"
}
]
>>> Diagnostics: wireguard
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics wireguard
[PASS] Diagnostics: wireguard
[
{
"checks": [
{
"check_name": "configured_interfaces",
"diagnostic_message": "No WireGuard interfaces configured yet",
"expected_value": null,
"observed_value": "0 interfaces",
"remediation_hint": "Create an interface using 'nx9-wg interface create'",
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "wireguard",
"timestamp": "2026-08-16T10:46:33.077978869"
}
]
>>> Diagnostics: routing
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics routing
[PASS] Diagnostics: routing
[
{
"checks": [
{
"check_name": "configured_routes",
"diagnostic_message": "Kernel routing rules configured in database",
"expected_value": null,
"observed_value": "0 total (0 active)",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "routing",
"timestamp": "2026-08-16T10:46:33.082776662"
}
]
>>> Diagnostics: forwarding
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics forwarding
[PASS] Diagnostics: forwarding
[
{
"checks": [
{
"check_name": "ipv4_forwarding",
"diagnostic_message": "IPv4 packet forwarding is disabled in sysctl; VPN clients cannot route traffic",
"expected_value": "enabled",
"observed_value": "disabled",
"remediation_hint": "Enable IP forwarding with 'nx9-wg forwarding enable'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "forwarding",
"timestamp": "2026-08-16T10:46:33.087615541"
}
]
>>> Diagnostics: firewall
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics firewall
[PASS] Diagnostics: firewall
[
{
"checks": [
{
"check_name": "firewall_rules_count",
"diagnostic_message": "Configured nftables packet filtering rules",
"expected_value": null,
"observed_value": "0 total (0 active)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "nftables_table_nx9_wg",
"diagnostic_message": "Dedicated table inet nx9_wg presence in kernel nftables",
"expected_value": "active",
"observed_value": "not_loaded",
"remediation_hint": "Synchronize firewall with 'nx9-wg firewall sync'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "firewall",
"timestamp": "2026-08-16T10:46:33.092628117"
}
]
>>> Diagnostics: nat
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics nat
[PASS] Diagnostics: nat
[
{
"checks": [
{
"check_name": "nat_setting",
"diagnostic_message": "NAT masquerade setting configured in database",
"expected_value": null,
"observed_value": "enabled",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "nat",
"timestamp": "2026-08-16T10:46:33.098748636"
}
]
>>> Diagnostics: mtu
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics mtu
[PASS] Diagnostics: mtu
[
{
"checks": [
{
"check_name": "client_profile_mobile_recommendation",
"diagnostic_message": "Recommended MTU for mobile/cellular connections is 1280 to prevent carrier fragmentation",
"expected_value": "1280 bytes",
"observed_value": "1280 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "client_profile_cgnat_recommendation",
"diagnostic_message": "Recommended MTU for CGNAT connections is 1360 to accommodate carrier-grade NAT encapsulation",
"expected_value": "1360 bytes",
"observed_value": "1360 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
},
{
"check_name": "client_profile_wifi_recommendation",
"diagnostic_message": "Recommended MTU for standard Wi-Fi and wired connections is 1420 bytes",
"expected_value": "1420 bytes",
"observed_value": "1420 bytes (keepalive: 25s)",
"remediation_hint": null,
"status": "pass"
}
],
"overall_status": "pass",
"subsystem": "mtu",
"timestamp": "2026-08-16T10:46:33.104585472"
}
]
>>> Diagnostics: reconciliation
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics reconciliation
[PASS] Diagnostics: reconciliation
[
{
"checks": [
{
"check_name": "overall_drift",
"diagnostic_message": "Discrepancies detected between SQLite desired state and Linux kernel state",
"expected_value": "zero_drift",
"observed_value": "1 drift actions pending",
"remediation_hint": "Execute 'nx9-wg reconcile apply' to synchronize changes",
"status": "warning"
},
{
"check_name": "drift:forwarding:enable_forwarding",
"diagnostic_message": "IPv4 forwarding is disabled in kernel sysctl; enable for VPN routing",
"expected_value": null,
"observed_value": "ipv4_forward",
"remediation_hint": "Run 'nx9-wg reconcile apply'",
"status": "warning"
}
],
"overall_status": "warning",
"subsystem": "reconciliation",
"timestamp": "2026-08-16T10:46:33.109960921"
}
]
[SKIP] Diagnostics: peer — requires LIVE=1 and peer context
============================================================================
21 — Output Format Matrix
============================================================================
>>> Network list — table
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table network list
[PASS] Network list — table
(No items found)
>>> Profile list — table
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table profile list
[PASS] Profile list — table
[
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Android cellular client profile with 1280 MTU and 25s keepalive",
"device": "android",
"dns": null,
"id": "android-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Android Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Default CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Default Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "web",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Web client profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-web",
"is_builtin": true,
"mtu": 1420,
"name": "Default Web",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wifi",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wifi",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wi-Fi",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wired",
"created_at": "2026-08-16T10:46:32",
"description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wired",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wired",
"nat_type": "direct",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "jio-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Jio Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "jio",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "starlink-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Starlink CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "starlink",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "tmobile-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "T-Mobile Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "tmobile",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "verizon-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Verizon Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "verizon",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive",
"device": "ios",
"dns": null,
"id": "ios-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "iOS Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
}
]
>>> System info — table
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table system info
[PASS] System info — table
arch : x86_64
config_file : /etc/nx9-wg/config.toml
data_dir : /tmp/nx9-wg-cli-test.u7uMLB/data
database_path : /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db
log_level : info
os : linux
reconciliation_interval_secs: 60
session_expiry_hours : 24
version : 0.1.0
>>> System health — table
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table system health
[PASS] System health — table
database : connected
status : healthy
timestamp : 2026-08-16T10:46:33.133881082+00:00
>>> Audit list — table
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table audit list
[PASS] Audit list — table
[
{
"actor": "admin",
"created_at": "2026-08-16T10:46:32",
"event_type": "admin_initialized",
"id": 1,
"ip_address": null,
"message": "Administrator initialized via secure random generation",
"metadata": null,
"resource_id": "1",
"resource_type": "admin"
}
]
>>> Network list — json
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json network list
[PASS] Network list — json
[]
>>> Profile list — json
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile list
[PASS] Profile list — json
[
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Android cellular client profile with 1280 MTU and 25s keepalive",
"device": "android",
"dns": null,
"id": "android-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Android Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Default CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Default Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "web",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Web client profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-web",
"is_builtin": true,
"mtu": 1420,
"name": "Default Web",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wifi",
"created_at": "2026-08-16T10:46:32",
"description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wifi",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wi-Fi",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "wired",
"created_at": "2026-08-16T10:46:32",
"description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "default-wired",
"is_builtin": true,
"mtu": 1420,
"name": "Default Wired",
"nat_type": "direct",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "jio-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Jio Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "jio",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "other",
"created_at": "2026-08-16T10:46:32",
"description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "starlink-cgnat",
"is_builtin": true,
"mtu": 1360,
"name": "Starlink CGNAT",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "starlink",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "tmobile-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "T-Mobile Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "tmobile",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive",
"device": null,
"dns": null,
"id": "verizon-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "Verizon Mobile",
"nat_type": "cgnat",
"persistent_keepalive": 25,
"provider": "verizon",
"updated_at": "2026-08-16T10:46:32"
},
{
"connection_type": "mobile",
"created_at": "2026-08-16T10:46:32",
"description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive",
"device": "ios",
"dns": null,
"id": "ios-mobile",
"is_builtin": true,
"mtu": 1280,
"name": "iOS Mobile",
"nat_type": "unknown",
"persistent_keepalive": 25,
"provider": null,
"updated_at": "2026-08-16T10:46:32"
}
]
>>> System info — json
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system info
[PASS] System info — json
{
"arch": "x86_64",
"config_file": "/etc/nx9-wg/config.toml",
"data_dir": "/tmp/nx9-wg-cli-test.u7uMLB/data",
"database_path": "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db",
"log_level": "info",
"os": "linux",
"reconciliation_interval_secs": 60,
"session_expiry_hours": 24,
"version": "0.1.0"
}
>>> System health — json
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system health
[PASS] System health — json
{
"database": "connected",
"status": "healthy",
"timestamp": "2026-08-16T10:46:33.161200976+00:00"
}
>>> Audit list — json
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json audit list
[PASS] Audit list — json
[
{
"actor": "admin",
"created_at": "2026-08-16T10:46:32",
"event_type": "admin_initialized",
"id": 1,
"ip_address": null,
"message": "Administrator initialized via secure random generation",
"metadata": null,
"resource_id": "1",
"resource_type": "admin"
}
]
>>> Network list — yaml
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml network list
[PASS] Network list — yaml
>>> Profile list — yaml
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml profile list
[PASS] Profile list — yaml
-
connection_type: "mobile"
created_at: "2026-08-16T10:46:32"
description: "Android cellular client profile with 1280 MTU and 25s keepalive"
device: "android"
dns: null
id: "android-mobile"
is_builtin: true
mtu: 1280
name: "Android Mobile"
nat_type: "unknown"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
-
connection_type: "other"
created_at: "2026-08-16T10:46:32"
description: "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive"
device: null
dns: null
id: "default-cgnat"
is_builtin: true
mtu: 1360
name: "Default CGNAT"
nat_type: "cgnat"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
-
connection_type: "mobile"
created_at: "2026-08-16T10:46:32"
description: "Standard mobile carrier profile with 1280 MTU and 25s keepalive"
device: null
dns: null
id: "default-mobile"
is_builtin: true
mtu: 1280
name: "Default Mobile"
nat_type: "unknown"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
-
connection_type: "web"
created_at: "2026-08-16T10:46:32"
description: "Standard Web client profile with 1420 MTU and 25s keepalive"
device: null
dns: null
id: "default-web"
is_builtin: true
mtu: 1420
name: "Default Web"
nat_type: "unknown"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
-
connection_type: "wifi"
created_at: "2026-08-16T10:46:32"
description: "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive"
device: null
dns: null
id: "default-wifi"
is_builtin: true
mtu: 1420
name: "Default Wi-Fi"
nat_type: "unknown"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
-
connection_type: "wired"
created_at: "2026-08-16T10:46:32"
description: "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive"
device: null
dns: null
id: "default-wired"
is_builtin: true
mtu: 1420
name: "Default Wired"
nat_type: "direct"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
-
connection_type: "mobile"
created_at: "2026-08-16T10:46:32"
description: "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive"
device: null
dns: null
id: "jio-mobile"
is_builtin: true
mtu: 1280
name: "Jio Mobile"
nat_type: "cgnat"
persistent_keepalive: 25
provider: "jio"
updated_at: "2026-08-16T10:46:32"
-
connection_type: "other"
created_at: "2026-08-16T10:46:32"
description: "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive"
device: null
dns: null
id: "starlink-cgnat"
is_builtin: true
mtu: 1360
name: "Starlink CGNAT"
nat_type: "cgnat"
persistent_keepalive: 25
provider: "starlink"
updated_at: "2026-08-16T10:46:32"
-
connection_type: "mobile"
created_at: "2026-08-16T10:46:32"
description: "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive"
device: null
dns: null
id: "tmobile-mobile"
is_builtin: true
mtu: 1280
name: "T-Mobile Mobile"
nat_type: "cgnat"
persistent_keepalive: 25
provider: "tmobile"
updated_at: "2026-08-16T10:46:32"
-
connection_type: "mobile"
created_at: "2026-08-16T10:46:32"
description: "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive"
device: null
dns: null
id: "verizon-mobile"
is_builtin: true
mtu: 1280
name: "Verizon Mobile"
nat_type: "cgnat"
persistent_keepalive: 25
provider: "verizon"
updated_at: "2026-08-16T10:46:32"
-
connection_type: "mobile"
created_at: "2026-08-16T10:46:32"
description: "Apple iOS cellular profile with 1280 MTU and 25s keepalive"
device: "ios"
dns: null
id: "ios-mobile"
is_builtin: true
mtu: 1280
name: "iOS Mobile"
nat_type: "unknown"
persistent_keepalive: 25
provider: null
updated_at: "2026-08-16T10:46:32"
>>> System info — yaml
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml system info
[PASS] System info — yaml
arch: "x86_64"
config_file: "/etc/nx9-wg/config.toml"
data_dir: "/tmp/nx9-wg-cli-test.u7uMLB/data"
database_path: "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db"
log_level: "info"
os: "linux"
reconciliation_interval_secs: 60
session_expiry_hours: 24
version: "0.1.0"
>>> System health — yaml
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml system health
[PASS] System health — yaml
database: "connected"
status: "healthy"
timestamp: "2026-08-16T10:46:33.188558932+00:00"
>>> Audit list — yaml
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml audit list
[PASS] Audit list — yaml
-
actor: "admin"
created_at: "2026-08-16T10:46:32"
event_type: "admin_initialized"
id: 1
ip_address: null
message: "Administrator initialized via secure random generation"
metadata: null
resource_id: "1"
resource_type: "admin"
>>> Network list — csv
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv network list
[PASS] Network list — csv
>>> Profile list — csv
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv profile list
[PASS] Profile list — csv
connection_type,created_at,description,device,dns,id,is_builtin,mtu,name,nat_type,persistent_keepalive,provider,updated_at
mobile,2026-08-16T10:46:32,Android cellular client profile with 1280 MTU and 25s keepalive,android,null,android-mobile,true,1280,Android Mobile,unknown,25,null,2026-08-16T10:46:32
other,2026-08-16T10:46:32,Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive,null,null,default-cgnat,true,1360,Default CGNAT,cgnat,25,null,2026-08-16T10:46:32
mobile,2026-08-16T10:46:32,Standard mobile carrier profile with 1280 MTU and 25s keepalive,null,null,default-mobile,true,1280,Default Mobile,unknown,25,null,2026-08-16T10:46:32
web,2026-08-16T10:46:32,Standard Web client profile with 1420 MTU and 25s keepalive,null,null,default-web,true,1420,Default Web,unknown,25,null,2026-08-16T10:46:32
wifi,2026-08-16T10:46:32,Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive,null,null,default-wifi,true,1420,Default Wi-Fi,unknown,25,null,2026-08-16T10:46:32
wired,2026-08-16T10:46:32,High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive,null,null,default-wired,true,1420,Default Wired,direct,25,null,2026-08-16T10:46:32
mobile,2026-08-16T10:46:32,Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive,null,null,jio-mobile,true,1280,Jio Mobile,cgnat,25,jio,2026-08-16T10:46:32
other,2026-08-16T10:46:32,Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive,null,null,starlink-cgnat,true,1360,Starlink CGNAT,cgnat,25,starlink,2026-08-16T10:46:32
mobile,2026-08-16T10:46:32,T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive,null,null,tmobile-mobile,true,1280,T-Mobile Mobile,cgnat,25,tmobile,2026-08-16T10:46:32
mobile,2026-08-16T10:46:32,Verizon Wireless mobile profile with 1280 MTU and 25s keepalive,null,null,verizon-mobile,true,1280,Verizon Mobile,cgnat,25,verizon,2026-08-16T10:46:32
mobile,2026-08-16T10:46:32,Apple iOS cellular profile with 1280 MTU and 25s keepalive,ios,null,ios-mobile,true,1280,iOS Mobile,unknown,25,null,2026-08-16T10:46:32
>>> System info — csv
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv system info
[PASS] System info — csv
arch,config_file,data_dir,database_path,log_level,os,reconciliation_interval_secs,session_expiry_hours,version
x86_64,/etc/nx9-wg/config.toml,/tmp/nx9-wg-cli-test.u7uMLB/data,/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db,info,linux,60,24,0.1.0
>>> System health — csv
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv system health
[PASS] System health — csv
database,status,timestamp
connected,healthy,2026-08-16T10:46:33.216139326+00:00
>>> Audit list — csv
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv audit list
[PASS] Audit list — csv
actor,created_at,event_type,id,ip_address,message,metadata,resource_id,resource_type
admin,2026-08-16T10:46:32,admin_initialized,1,null,Administrator initialized via secure random generation,null,1,admin
============================================================================
22 — Global CLI Options
============================================================================
>>> Quiet mode
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --quiet system health
[PASS] Quiet mode
database : connected
status : healthy
timestamp : 2026-08-16T10:46:33.227314621+00:00
>>> JSON shortcut
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --json system health
[PASS] JSON shortcut
{
"database": "connected",
"status": "healthy",
"timestamp": "2026-08-16T10:46:33.233149022+00:00"
}
>>> Verbose mode
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --verbose system health
[PASS] Verbose mode
database : connected
status : healthy
timestamp : 2026-08-16T10:46:33.238155166+00:00
============================================================================
23 — NX9_WG_* Environment Namespace
============================================================================
[PASS] NX9_WG_LOG_LEVEL accepted
============================================================================
24 — Explicit Database Path Resolution
============================================================================
>>> Explicit nested database path
/mnt/Programs/nx9-wg/target/release/nx9-wg --database /tmp/nx9-wg-cli-test.u7uMLB/explicit/nested/nx9-wg.db system health
[FAIL] Explicit nested database path (exit=1)
--- stderr ---
Error: Sqlx(Database(SqliteError { code: 14, message: "unable to open database file" }))
[FAIL] Explicit database file created
============================================================================
25 — Data Directory Resolution
============================================================================
>>> Database created from data-dir
/mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data-only system health
[PASS] Database created from data-dir
database : connected
status : healthy
timestamp : 2026-08-16T10:46:33.256892811+00:00
[PASS] Database exists below data-dir: /tmp/nx9-wg-cli-test.u7uMLB/data-only/nx9-wg.db
============================================================================
26 — Source-Level Architecture Safety
============================================================================
[PASS] No external subprocess invocation in production Rust
[PASS] No forbidden technical-debt markers
[PASS] SQL isolated from application root
============================================================================
27 — Environment Variable Namespace Source Audit
============================================================================
[PASS] No suspicious environment namespace references
============================================================================
28 — FINAL VERIFICATION SUMMARY
============================================================================
Binary:
/mnt/Programs/nx9-wg/target/release/nx9-wg
Project:
/mnt/Programs/nx9-wg
Temporary test root:
/tmp/nx9-wg-cli-test.u7uMLB
Test database:
/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db
LIVE mode:
0
------------------------------------------------------------------------
PASS : 199
FAIL : 4
SKIP : 7
TOTAL: 210
------------------------------------------------------------------------
RESULT: FAIL
One or more verification checks failed.
The temporary environment will be preserved for investigation.
============================================================================
nx9-wg CLI verification finished
============================================================================
RESULT: FAIL
PASS : 199
FAIL : 4
SKIP : 7
TOTAL: 210
Temporary test data PRESERVED for investigation:
/tmp/nx9-wg-cli-test.u7uMLB
Database:
/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db
Password file:
/tmp/nx9-wg-cli-test.u7uMLB/admin-password
To inspect:
ls -la "/tmp/nx9-wg-cli-test.u7uMLB"
ls -la "/tmp/nx9-wg-cli-test.u7uMLB/data"