diff --git a/.gitignore b/.gitignore
index ea8c4bf..710e70e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,4 @@
/target
+
+# IDE metadata
+.idea/
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 30cf57e..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Ignored default folder with query files
-/queries/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index e94c81a..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/nx9-wg.iml b/.idea/nx9-wg.iml
deleted file mode 100644
index 3798ad1..0000000
--- a/.idea/nx9-wg.iml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/scripts/test-cli-live.sh b/scripts/test-cli-live.sh
new file mode 100755
index 0000000..4ce9cd4
--- /dev/null
+++ b/scripts/test-cli-live.sh
@@ -0,0 +1,173 @@
+#!/usr/bin/env bash
+# NX9-WG Live Test - Preflight Only
+# This script performs a safe, non-destructive preflight for Phase 5 LIVE verification.
+# It MUST NOT perform any kernel/network mutations unless LIVE is exactly 1.
+
+set -Eeuo pipefail
+
+ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
+LIVE="${LIVE:-0}"
+BIN="${BIN:-$ROOT/target/release/nx9-wg}"
+
+# Default TEST_ROOT under /tmp if not provided
+if [[ -z "${TEST_ROOT:-}" ]]; then
+ TEST_ROOT="/tmp/nx9-wg-live-test.$(date +%s).$$"
+fi
+
+# Resolve absolute path and forbid dangerous locations
+real_test_root=$(realpath -m "$TEST_ROOT")
+forbidden=("/" "/etc" "/var" "/var/lib" "/home" "/root" "$ROOT")
+for f in "${forbidden[@]}"; do
+ if [[ "$f" == "/" ]]; then
+ if [[ "$real_test_root" == "/" ]]; then
+ echo "ERROR: TEST_ROOT $real_test_root is forbidden (matches /)." >&2
+ exit 1
+ fi
+ else
+ if [[ "$real_test_root" == "$f" || "$real_test_root" == "$f/"* ]]; then
+ echo "ERROR: TEST_ROOT $real_test_root is forbidden (matches $f)." >&2
+ exit 1
+ fi
+ fi
+done
+
+BASELINE_DIR="$real_test_root/baseline"
+mkdir -p "$BASELINE_DIR"
+
+KEEP_TEST_ROOT=1
+
+cleanup() {
+ rc=$?
+ echo
+ echo "================================================================"
+ echo " NX9-WG LIVE preflight finished (LIVE=$LIVE)"
+ echo "================================================================"
+ echo " BASELINE DIRECTORY: $BASELINE_DIR"
+ echo " TEST_ROOT: $real_test_root"
+ echo " EXIT CODE: $rc"
+ echo
+ if [[ "$KEEP_TEST_ROOT" -eq 1 ]]; then
+ echo "Preserving TEST_ROOT for inspection: $real_test_root"
+ else
+ echo "Removing TEST_ROOT..."
+ rm -rf "$real_test_root"
+ fi
+ exit "$rc"
+}
+
+trap cleanup EXIT INT TERM
+
+# Safety: never perform mutations unless LIVE==1
+require_live_for_mutation() {
+ if [[ "$LIVE" != "1" ]]; then
+ echo "ERROR: Mutating operation requires LIVE=1. Current LIVE=$LIVE" >&2
+ exit 2
+ fi
+}
+
+# Helper to run a command and save output
+run_and_save() {
+ local label="$1"
+ shift
+ local out_file="$BASELINE_DIR/$label"
+ echo "--- Running: $*" >"$out_file"
+ if ! "$@" >>"$out_file" 2>&1; then
+ echo "--- Command exit non-zero: $?" >>"$out_file"
+ fi
+}
+
+# Validate binary (be resilient: if release binary missing, fall back to debug, or mark as unavailable)
+if [[ ! -x "$BIN" ]]; then
+ alt_debug="$ROOT/target/debug/nx9-wg"
+ if [[ -x "$alt_debug" ]]; then
+ BIN="$alt_debug"
+ echo "Note: release binary missing; falling back to debug binary at $BIN"
+ else
+ echo "Warning: nx9-wg binary not found at $BIN or $alt_debug; application-level checks will be skipped." >&2
+ BIN=""
+ fi
+fi
+
+echo "Preflight mode: LIVE=$LIVE"
+echo "Baseline directory: $BASELINE_DIR"
+
+# Collect host info
+run_and_save "uname.txt" uname -a
+run_and_save "identity.txt" id
+run_and_save "hostname.txt" hostname
+run_and_save "architecture.txt" uname -m
+
+# Networking baseline
+run_and_save "ip-link.txt" ip link
+run_and_save "ip-addr.txt" ip addr
+run_and_save "ip-route.txt" ip route
+run_and_save "ip6-route.txt" ip -6 route || true
+
+# WireGuard and sockets
+run_and_save "wg-show.txt" wg show || echo "wg not present or no permission" >"$BASELINE_DIR/wg-show.txt"
+run_and_save "ss-lun.txt" ss -lun || true
+
+# Forwarding and nft
+run_and_save "ipv4-forwarding.txt" sysctl net.ipv4.ip_forward || true
+run_and_save "ipv6-forwarding.txt" sysctl net.ipv6.conf.all.forwarding || true
+run_and_save "nft-ruleset.txt" nft list ruleset || echo "nft not present or no permission" >"$BASELINE_DIR/nft-ruleset.txt"
+
+# Application-level checks (non-destructive)
+run_and_save "nx9-version.txt" "$BIN" version --format json || "$BIN" version >"$BASELINE_DIR/nx9-version.txt" 2>&1
+run_and_save "nx9-system-info.txt" "$BIN" system info --format json || true
+run_and_save "nx9-system-health.txt" "$BIN" system health --format json || true
+
+# Diagnostics: capture JSON where possible
+if "$BIN" diagnostics all --format json >"$BASELINE_DIR/nx9-diagnostics.json" 2>"$BASELINE_DIR/nx9-diagnostics.err"; then
+ echo "Diagnostics collected" >"$BASELINE_DIR/nx9-diagnostics.status"
+else
+ echo "Diagnostics non-fatal failure (check nx9-diagnostics.err)" >"$BASELINE_DIR/nx9-diagnostics.status"
+fi
+
+# Metadata JSON
+metadata_file="$BASELINE_DIR/metadata.json"
+cat >"$metadata_file" </dev/null || echo 'null'),
+ "LIVE": "$LIVE",
+ "TEST_ROOT": "$real_test_root"
+}
+EOF
+
+# Safety validation summary
+echo
+echo "PRE-FLIGHT SAFETY VALIDATION"
+echo "- LIVE default is: $LIVE"
+if [[ "$LIVE" != "1" ]]; then
+ echo "- Mutation mode disabled (safe). No kernel/network mutations will be performed by this run."
+fi
+
+# Detect existing WireGuard interfaces (list names)
+if command -v wg >/dev/null 2>&1; then
+ wg show interfaces 2>/dev/null | tee "$BASELINE_DIR/wg-interfaces.txt" || true
+else
+ ip -o link | grep -E 'wg|wireguard' || true
+fi
+
+# Print preflight summary to stdout
+cat <>> 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
- Path to configuration file
-
- [env: NX9_WG_CONFIG=]
-
- -d, --data-dir
- Path to database data directory
-
- [env: NX9_WG_DATA_DIR=]
-
- --database
- Specific SQLite database file path or URL
-
- [env: NX9_WG_DATABASE=]
-
- --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 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
-[2m2026-08-16T10:46:32.751782Z[0m [32m INFO[0m [2mnx9_wg_api::auth::bootstrap[0m[2m:[0m Administrator initialized successfully [3musername[0m[2m=[0madmin [3msource[0m[2m=[0msecure 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"
-
-