From fa676864be516f828cd32132ea2933cf09f1783c Mon Sep 17 00:00:00 2001 From: Sunil Thakare Date: Sun, 16 Aug 2026 17:44:57 +0530 Subject: [PATCH] feat: complete native WireGuard management platform --- .gitignore | 3 + .idea/.gitignore | 10 - .idea/modules.xml | 8 - .idea/nx9-wg.iml | 23 - .idea/vcs.xml | 6 - scripts/test-cli-live.sh | 173 +++ test.log | 2704 -------------------------------------- 7 files changed, 176 insertions(+), 2751 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/modules.xml delete mode 100644 .idea/nx9-wg.iml delete mode 100644 .idea/vcs.xml create mode 100755 scripts/test-cli-live.sh delete mode 100644 test.log 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 -2026-08-16T10:46:32.751782Z  INFO nx9_wg_api::auth::bootstrap: Administrator initialized successfully username=admin source=secure random generation -Administrator initialized successfully. - Username: admin - Source: secure random generation - - Generated Password (SAVE THIS IMMEDIATELY): - ======================================== - q2YKIjqIogWH=t9ISk@m#Bug - ======================================== - - created_at : 2026-08-16T10:46:32.751497912 - id : 1 - last_login_at : null - last_login_ip : null - password_hash : $argon2id$v=19$m=19456,t=2,p=1$hQkBKcRbtIXRHCv6OuOUfA$qqbIvjMslEdA7OCPEYpcRjYtgmejjAan6Fxhday9GLM - totp_enabled : false - totp_secret : null - updated_at : 2026-08-16T10:46:32.751497912 - username : admin - [PASS] Generated administrator password file exists - -============================================================================ - 06 — System -============================================================================ - - >>> System info - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db system info - [PASS] System info - arch : x86_64 - config_file : /etc/nx9-wg/config.toml - data_dir : /tmp/nx9-wg-cli-test.u7uMLB/data - database_path : /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db - log_level : info - os : linux - reconciliation_interval_secs: 60 - session_expiry_hours : 24 - version : 0.1.0 - - >>> System health - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db system health - [PASS] System health - database : connected - status : healthy - timestamp : 2026-08-16T10:46:32.762713232+00:00 - - >>> System info JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system info - [PASS] System info JSON -{ - "arch": "x86_64", - "config_file": "/etc/nx9-wg/config.toml", - "data_dir": "/tmp/nx9-wg-cli-test.u7uMLB/data", - "database_path": "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db", - "log_level": "info", - "os": "linux", - "reconciliation_interval_secs": 60, - "session_expiry_hours": 24, - "version": "0.1.0" -} - - >>> System health JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system health - [PASS] System health JSON -{ - "database": "connected", - "status": "healthy", - "timestamp": "2026-08-16T10:46:32.773865263+00:00" -} - - >>> System info YAML - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml system info - [PASS] System info YAML -arch: "x86_64" -config_file: "/etc/nx9-wg/config.toml" -data_dir: "/tmp/nx9-wg-cli-test.u7uMLB/data" -database_path: "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db" -log_level: "info" -os: "linux" -reconciliation_interval_secs: 60 -session_expiry_hours: 24 -version: "0.1.0" - - >>> System health CSV - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv system health - [PASS] System health CSV -database,status,timestamp -connected,healthy,2026-08-16T10:46:32.785108766+00:00 - -============================================================================ - 07 — Administrator / Authentication -============================================================================ - - >>> Admin status - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db admin status - [PASS] Admin status - created_at : 2026-08-16T10:46:32 - last_login_at : null - last_login_ip : null - totp_enabled : false - username : admin - - >>> Admin status JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json admin status - [PASS] Admin status JSON -{ - "created_at": "2026-08-16T10:46:32", - "last_login_at": null, - "last_login_ip": null, - "totp_enabled": false, - "username": "admin" -} - -============================================================================ - 08 — Client Environment / MTU Profiles -============================================================================ - - >>> Profile list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile list - [PASS] Profile list -[ - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Android cellular client profile with 1280 MTU and 25s keepalive", - "device": "android", - "dns": null, - "id": "android-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Android Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Default CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Default Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "web", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Web client profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-web", - "is_builtin": true, - "mtu": 1420, - "name": "Default Web", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wifi", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wifi", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wi-Fi", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wired", - "created_at": "2026-08-16T10:46:32", - "description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wired", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wired", - "nat_type": "direct", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "jio-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Jio Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "jio", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "starlink-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Starlink CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "starlink", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "tmobile-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "T-Mobile Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "tmobile", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "verizon-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Verizon Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "verizon", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive", - "device": "ios", - "dns": null, - "id": "ios-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "iOS Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - } -] - - >>> Profile list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile list - [PASS] Profile list JSON -[ - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Android cellular client profile with 1280 MTU and 25s keepalive", - "device": "android", - "dns": null, - "id": "android-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Android Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Default CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Default Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "web", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Web client profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-web", - "is_builtin": true, - "mtu": 1420, - "name": "Default Web", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wifi", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wifi", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wi-Fi", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wired", - "created_at": "2026-08-16T10:46:32", - "description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wired", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wired", - "nat_type": "direct", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "jio-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Jio Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "jio", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "starlink-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Starlink CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "starlink", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "tmobile-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "T-Mobile Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "tmobile", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "verizon-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Verizon Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "verizon", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive", - "device": "ios", - "dns": null, - "id": "ios-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "iOS Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - } -] - - >>> Default mobile profile - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-mobile - [PASS] Default mobile profile - connection_type : mobile - created_at : 2026-08-16T10:46:32 - description : Standard mobile carrier profile with 1280 MTU and 25s keepalive - device : null - dns : null - id : default-mobile - is_builtin : true - mtu : 1280 - name : Default Mobile - nat_type : unknown - persistent_keepalive : 25 - provider : null - updated_at : 2026-08-16T10:46:32 - - >>> Default CGNAT profile - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-cgnat - [PASS] Default CGNAT profile - connection_type : other - created_at : 2026-08-16T10:46:32 - description : Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive - device : null - dns : null - id : default-cgnat - is_builtin : true - mtu : 1360 - name : Default CGNAT - nat_type : cgnat - persistent_keepalive : 25 - provider : null - updated_at : 2026-08-16T10:46:32 - - >>> Default Wi-Fi profile - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-wifi - [PASS] Default Wi-Fi profile - connection_type : wifi - created_at : 2026-08-16T10:46:32 - description : Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive - device : null - dns : null - id : default-wifi - is_builtin : true - mtu : 1420 - name : Default Wi-Fi - nat_type : unknown - persistent_keepalive : 25 - provider : null - updated_at : 2026-08-16T10:46:32 - - >>> Default Web profile - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-web - [PASS] Default Web profile - connection_type : web - created_at : 2026-08-16T10:46:32 - description : Standard Web client profile with 1420 MTU and 25s keepalive - device : null - dns : null - id : default-web - is_builtin : true - mtu : 1420 - name : Default Web - nat_type : unknown - persistent_keepalive : 25 - provider : null - updated_at : 2026-08-16T10:46:32 - - >>> Default Wired profile - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile show default-wired - [PASS] Default Wired profile - connection_type : wired - created_at : 2026-08-16T10:46:32 - description : High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive - device : null - dns : null - id : default-wired - is_builtin : true - mtu : 1420 - name : Default Wired - nat_type : direct - persistent_keepalive : 25 - provider : null - updated_at : 2026-08-16T10:46:32 - - >>> Validate MTU 1280 - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1280 - [PASS] Validate MTU 1280 - is_jumbo : false - message : MTU is in valid standard range (1280-1500) - mtu : 1280 - valid : true - - >>> Validate MTU 1360 - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1360 - [PASS] Validate MTU 1360 - is_jumbo : false - message : MTU is in valid standard range (1280-1500) - mtu : 1360 - valid : true - - >>> Validate MTU 1420 - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1420 - [PASS] Validate MTU 1420 - is_jumbo : false - message : MTU is in valid standard range (1280-1500) - mtu : 1420 - valid : true - - >>> Validate MTU 1500 - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db profile validate 1500 - [PASS] Validate MTU 1500 - is_jumbo : false - message : MTU is in valid standard range (1280-1500) - mtu : 1500 - valid : true - - >>> Resolve Android Mobile CGNAT - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection mobile --device android --nat cgnat - [PASS] Resolve Android Mobile CGNAT -{ - "applied_profile_id": "android-mobile", - "applied_profile_name": "Android Mobile", - "connection_type": "mobile", - "device": "android", - "dns": null, - "is_manually_overridden": false, - "mtu": 1280, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "warning": null -} - - >>> Resolve iOS Mobile CGNAT - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection mobile --device ios --nat cgnat - [PASS] Resolve iOS Mobile CGNAT -{ - "applied_profile_id": "ios-mobile", - "applied_profile_name": "iOS Mobile", - "connection_type": "mobile", - "device": "ios", - "dns": null, - "is_manually_overridden": false, - "mtu": 1280, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "warning": null -} - - >>> Resolve Linux Wi-Fi Direct - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection wifi --device linux --nat direct - [PASS] Resolve Linux Wi-Fi Direct -{ - "applied_profile_id": "default-wifi", - "applied_profile_name": "Default Wi-Fi", - "connection_type": "wifi", - "device": "linux", - "dns": null, - "is_manually_overridden": false, - "mtu": 1420, - "nat_type": "direct", - "persistent_keepalive": 25, - "provider": null, - "warning": null -} - - >>> Resolve Windows Wired - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection wired --device windows --nat direct - [PASS] Resolve Windows Wired -{ - "applied_profile_id": "default-wired", - "applied_profile_name": "Default Wired", - "connection_type": "wired", - "device": "windows", - "dns": null, - "is_manually_overridden": false, - "mtu": 1420, - "nat_type": "direct", - "persistent_keepalive": 25, - "provider": null, - "warning": null -} - - >>> Resolve Jio Mobile CGNAT - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider jio --connection mobile --nat cgnat - [PASS] Resolve Jio Mobile CGNAT -{ - "applied_profile_id": "jio-mobile", - "applied_profile_name": "Jio Mobile", - "connection_type": "mobile", - "device": null, - "dns": null, - "is_manually_overridden": false, - "mtu": 1280, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "jio", - "warning": null -} - - >>> Resolve T-Mobile Mobile CGNAT - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider tmobile --connection mobile --nat cgnat - [PASS] Resolve T-Mobile Mobile CGNAT -{ - "applied_profile_id": "tmobile-mobile", - "applied_profile_name": "T-Mobile Mobile", - "connection_type": "mobile", - "device": null, - "dns": null, - "is_manually_overridden": false, - "mtu": 1280, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "tmobile", - "warning": null -} - - >>> Resolve Verizon Mobile CGNAT - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider verizon --connection mobile --nat cgnat - [PASS] Resolve Verizon Mobile CGNAT -{ - "applied_profile_id": "verizon-mobile", - "applied_profile_name": "Verizon Mobile", - "connection_type": "mobile", - "device": null, - "dns": null, - "is_manually_overridden": false, - "mtu": 1280, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "verizon", - "warning": null -} - - >>> Resolve Starlink CGNAT - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --provider starlink --connection other --nat cgnat - [PASS] Resolve Starlink CGNAT -{ - "applied_profile_id": "starlink-cgnat", - "applied_profile_name": "Starlink CGNAT", - "connection_type": "other", - "device": null, - "dns": null, - "is_manually_overridden": false, - "mtu": 1360, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "starlink", - "warning": null -} - - >>> Resolve manual MTU override - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --connection mobile --device android --nat cgnat --mtu 1300 - [PASS] Resolve manual MTU override -{ - "applied_profile_id": "android-mobile", - "applied_profile_name": "Android Mobile", - "connection_type": "mobile", - "device": "android", - "dns": null, - "is_manually_overridden": true, - "mtu": 1300, - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "warning": "Client MTU has been manually overridden by administrator." -} - - >>> Resolve explicit profile - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile resolve --profile android-mobile - [PASS] Resolve explicit profile -{ - "applied_profile_id": "android-mobile", - "applied_profile_name": "Android Mobile", - "connection_type": "mobile", - "device": "android", - "dns": null, - "is_manually_overridden": false, - "mtu": 1280, - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "warning": null -} - -============================================================================ - 09 — Network Management -============================================================================ - - >>> Network list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db network list - [PASS] Network list -(No items found) - - >>> Network list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json network list - [PASS] Network list JSON -[] - -============================================================================ - 10 — WireGuard Interface Management -============================================================================ - - >>> Interface list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db interface list - [PASS] Interface list -(No items found) - - >>> Interface list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json interface list - [PASS] Interface list JSON -[] - -============================================================================ - 11 — Peer Management -============================================================================ - - >>> Peer list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db peer list - [PASS] Peer list -(No items found) - - >>> Peer list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json peer list - [PASS] Peer list JSON -[] - -============================================================================ - 12 — Routing -============================================================================ - - >>> Route list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db route list - [PASS] Route list -(No items found) - - >>> Route list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json route list - [PASS] Route list JSON -[] - -============================================================================ - 13 — Firewall -============================================================================ - - >>> Firewall list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db firewall list - [PASS] Firewall list -(No items found) - - >>> Firewall list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json firewall list - [PASS] Firewall list JSON -[] - -============================================================================ - 14 — NAT -============================================================================ - - >>> NAT status - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db nat status - [PASS] NAT status - managed_subnets : [] - nat_masquerade_enabled : true - table : inet nx9_wg - - >>> NAT list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db nat list - [PASS] NAT list -(No items found) - - >>> NAT status JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json nat status - [PASS] NAT status JSON -{ - "managed_subnets": [], - "nat_masquerade_enabled": true, - "table": "inet nx9_wg" -} - -============================================================================ - 15 — IP Forwarding -============================================================================ - - >>> Forwarding status - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db forwarding status - [PASS] Forwarding status - ipv4_enabled : false - ipv6_enabled : false - - >>> Forwarding status JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json forwarding status - [PASS] Forwarding status JSON -{ - "ipv4_enabled": false, - "ipv6_enabled": false -} - -============================================================================ - 16 — Reconciliation -============================================================================ - - >>> Reconciliation status - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db reconcile status - [PASS] Reconciliation status - drift_detected : false - firewall_changes : 0 - interface_changes : 0 - peer_changes : 0 - route_changes : 0 - - >>> Reconciliation plan - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db reconcile plan - [PASS] Reconciliation plan - actions : [] - firewall_changes : 0 - forwarding_changes : 0 - has_drift : false - interface_changes : 0 - peer_changes : 0 - route_changes : 0 - - >>> Reconciliation verify - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db reconcile verify - [PASS] Reconciliation verify -Zero drift detected: SQLite and kernel state are in full synchronization. - - >>> Reconciliation status JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json reconcile status - [PASS] Reconciliation status JSON -{ - "drift_detected": false, - "firewall_changes": 0, - "interface_changes": 0, - "peer_changes": 0, - "route_changes": 0 -} - -============================================================================ - 17 — Backup -============================================================================ - - >>> Backup list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db backup list - [PASS] Backup list -(No items found) - - >>> Backup list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json backup list - [PASS] Backup list JSON -[] - -============================================================================ - 18 — Audit -============================================================================ - - >>> Audit list - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db audit list - [PASS] Audit list -[ - { - "actor": "admin", - "created_at": "2026-08-16T10:46:32", - "event_type": "admin_initialized", - "id": 1, - "ip_address": null, - "message": "Administrator initialized via secure random generation", - "metadata": null, - "resource_id": "1", - "resource_type": "admin" - } -] - - >>> Audit list JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json audit list - [PASS] Audit list JSON -[ - { - "actor": "admin", - "created_at": "2026-08-16T10:46:32", - "event_type": "admin_initialized", - "id": 1, - "ip_address": null, - "message": "Administrator initialized via secure random generation", - "metadata": null, - "resource_id": "1", - "resource_type": "admin" - } -] - -============================================================================ - 19 — Live Linux State -============================================================================ - [SKIP] Live interface list — use LIVE=1 - [SKIP] Live peer list — use LIVE=1 - [SKIP] Live routes — use LIVE=1 - [SKIP] Live firewall — use LIVE=1 - [SKIP] Live forwarding — use LIVE=1 - [SKIP] Live NAT — use LIVE=1 - -============================================================================ - 20 — Native Diagnostics -============================================================================ - - >>> Diagnostics all - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics all - [PASS] Diagnostics all -[ - { - "checks": [ - { - "check_name": "hostname", - "diagnostic_message": "System hostname read successfully", - "expected_value": null, - "observed_value": "thakares-ideapad", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "os_architecture", - "diagnostic_message": "Supported target platform", - "expected_value": "linux-*", - "observed_value": "linux-x86_64", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "kernel_version", - "diagnostic_message": "Linux kernel release inspected", - "expected_value": null, - "observed_value": "7.1.8-arch1-3", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "memory_status", - "diagnostic_message": "System memory available", - "expected_value": null, - "observed_value": "MemTotal: 28526564 kB", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "sqlite_persistence", - "diagnostic_message": "SQLite WAL persistence layer is responsive", - "expected_value": "connected_and_healthy", - "observed_value": "connected_and_healthy", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "system", - "timestamp": "2026-08-16T10:46:33.050682139" - }, - { - "checks": [ - { - "check_name": "linux_network_interfaces", - "diagnostic_message": "Network interfaces discovered in kernel", - "expected_value": null, - "observed_value": "2 interfaces (lo, wlp2s0)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "dns_nameservers", - "diagnostic_message": "System DNS nameservers configured", - "expected_value": null, - "observed_value": "127.0.0.1", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "network", - "timestamp": "2026-08-16T10:46:33.050715281" - }, - { - "checks": [ - { - "check_name": "default_gateway_route", - "diagnostic_message": "Default route to WAN/gateway is present", - "expected_value": "default_gateway_present", - "observed_value": "default_gateway_present", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "wan", - "timestamp": "2026-08-16T10:46:33.050732183" - }, - { - "checks": [ - { - "check_name": "configured_interfaces", - "diagnostic_message": "No WireGuard interfaces configured yet", - "expected_value": null, - "observed_value": "0 interfaces", - "remediation_hint": "Create an interface using 'nx9-wg interface create'", - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "wireguard", - "timestamp": "2026-08-16T10:46:33.050785273" - }, - { - "checks": [ - { - "check_name": "configured_routes", - "diagnostic_message": "Kernel routing rules configured in database", - "expected_value": null, - "observed_value": "0 total (0 active)", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "routing", - "timestamp": "2026-08-16T10:46:33.051082712" - }, - { - "checks": [ - { - "check_name": "ipv4_forwarding", - "diagnostic_message": "IPv4 packet forwarding is disabled in sysctl; VPN clients cannot route traffic", - "expected_value": "enabled", - "observed_value": "disabled", - "remediation_hint": "Enable IP forwarding with 'nx9-wg forwarding enable'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "forwarding", - "timestamp": "2026-08-16T10:46:33.051118900" - }, - { - "checks": [ - { - "check_name": "firewall_rules_count", - "diagnostic_message": "Configured nftables packet filtering rules", - "expected_value": null, - "observed_value": "0 total (0 active)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "nftables_table_nx9_wg", - "diagnostic_message": "Dedicated table inet nx9_wg presence in kernel nftables", - "expected_value": "active", - "observed_value": "not_loaded", - "remediation_hint": "Synchronize firewall with 'nx9-wg firewall sync'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "firewall", - "timestamp": "2026-08-16T10:46:33.051174264" - }, - { - "checks": [ - { - "check_name": "nat_setting", - "diagnostic_message": "NAT masquerade setting configured in database", - "expected_value": null, - "observed_value": "enabled", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "nat", - "timestamp": "2026-08-16T10:46:33.051223957" - }, - { - "checks": [ - { - "check_name": "client_profile_mobile_recommendation", - "diagnostic_message": "Recommended MTU for mobile/cellular connections is 1280 to prevent carrier fragmentation", - "expected_value": "1280 bytes", - "observed_value": "1280 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "client_profile_cgnat_recommendation", - "diagnostic_message": "Recommended MTU for CGNAT connections is 1360 to accommodate carrier-grade NAT encapsulation", - "expected_value": "1360 bytes", - "observed_value": "1360 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "client_profile_wifi_recommendation", - "diagnostic_message": "Recommended MTU for standard Wi-Fi and wired connections is 1420 bytes", - "expected_value": "1420 bytes", - "observed_value": "1420 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "mtu", - "timestamp": "2026-08-16T10:46:33.051301413" - }, - { - "checks": [ - { - "check_name": "overall_drift", - "diagnostic_message": "Discrepancies detected between SQLite desired state and Linux kernel state", - "expected_value": "zero_drift", - "observed_value": "1 drift actions pending", - "remediation_hint": "Execute 'nx9-wg reconcile apply' to synchronize changes", - "status": "warning" - }, - { - "check_name": "drift:forwarding:enable_forwarding", - "diagnostic_message": "IPv4 forwarding is disabled in kernel sysctl; enable for VPN routing", - "expected_value": null, - "observed_value": "ipv4_forward", - "remediation_hint": "Run 'nx9-wg reconcile apply'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "reconciliation", - "timestamp": "2026-08-16T10:46:33.051662923" - } -] - - >>> Diagnostics all JSON - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json diagnostics all - [PASS] Diagnostics all JSON -[ - { - "checks": [ - { - "check_name": "hostname", - "diagnostic_message": "System hostname read successfully", - "expected_value": null, - "observed_value": "thakares-ideapad", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "os_architecture", - "diagnostic_message": "Supported target platform", - "expected_value": "linux-*", - "observed_value": "linux-x86_64", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "kernel_version", - "diagnostic_message": "Linux kernel release inspected", - "expected_value": null, - "observed_value": "7.1.8-arch1-3", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "memory_status", - "diagnostic_message": "System memory available", - "expected_value": null, - "observed_value": "MemTotal: 28526564 kB", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "sqlite_persistence", - "diagnostic_message": "SQLite WAL persistence layer is responsive", - "expected_value": "connected_and_healthy", - "observed_value": "connected_and_healthy", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "system", - "timestamp": "2026-08-16T10:46:33.056557217" - }, - { - "checks": [ - { - "check_name": "linux_network_interfaces", - "diagnostic_message": "Network interfaces discovered in kernel", - "expected_value": null, - "observed_value": "2 interfaces (lo, wlp2s0)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "dns_nameservers", - "diagnostic_message": "System DNS nameservers configured", - "expected_value": null, - "observed_value": "127.0.0.1", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "network", - "timestamp": "2026-08-16T10:46:33.056588836" - }, - { - "checks": [ - { - "check_name": "default_gateway_route", - "diagnostic_message": "Default route to WAN/gateway is present", - "expected_value": "default_gateway_present", - "observed_value": "default_gateway_present", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "wan", - "timestamp": "2026-08-16T10:46:33.056605968" - }, - { - "checks": [ - { - "check_name": "configured_interfaces", - "diagnostic_message": "No WireGuard interfaces configured yet", - "expected_value": null, - "observed_value": "0 interfaces", - "remediation_hint": "Create an interface using 'nx9-wg interface create'", - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "wireguard", - "timestamp": "2026-08-16T10:46:33.056658106" - }, - { - "checks": [ - { - "check_name": "configured_routes", - "diagnostic_message": "Kernel routing rules configured in database", - "expected_value": null, - "observed_value": "0 total (0 active)", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "routing", - "timestamp": "2026-08-16T10:46:33.056971756" - }, - { - "checks": [ - { - "check_name": "ipv4_forwarding", - "diagnostic_message": "IPv4 packet forwarding is disabled in sysctl; VPN clients cannot route traffic", - "expected_value": "enabled", - "observed_value": "disabled", - "remediation_hint": "Enable IP forwarding with 'nx9-wg forwarding enable'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "forwarding", - "timestamp": "2026-08-16T10:46:33.056994549" - }, - { - "checks": [ - { - "check_name": "firewall_rules_count", - "diagnostic_message": "Configured nftables packet filtering rules", - "expected_value": null, - "observed_value": "0 total (0 active)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "nftables_table_nx9_wg", - "diagnostic_message": "Dedicated table inet nx9_wg presence in kernel nftables", - "expected_value": "active", - "observed_value": "not_loaded", - "remediation_hint": "Synchronize firewall with 'nx9-wg firewall sync'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "firewall", - "timestamp": "2026-08-16T10:46:33.057044072" - }, - { - "checks": [ - { - "check_name": "nat_setting", - "diagnostic_message": "NAT masquerade setting configured in database", - "expected_value": null, - "observed_value": "enabled", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "nat", - "timestamp": "2026-08-16T10:46:33.057081563" - }, - { - "checks": [ - { - "check_name": "client_profile_mobile_recommendation", - "diagnostic_message": "Recommended MTU for mobile/cellular connections is 1280 to prevent carrier fragmentation", - "expected_value": "1280 bytes", - "observed_value": "1280 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "client_profile_cgnat_recommendation", - "diagnostic_message": "Recommended MTU for CGNAT connections is 1360 to accommodate carrier-grade NAT encapsulation", - "expected_value": "1360 bytes", - "observed_value": "1360 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "client_profile_wifi_recommendation", - "diagnostic_message": "Recommended MTU for standard Wi-Fi and wired connections is 1420 bytes", - "expected_value": "1420 bytes", - "observed_value": "1420 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "mtu", - "timestamp": "2026-08-16T10:46:33.057185478" - }, - { - "checks": [ - { - "check_name": "overall_drift", - "diagnostic_message": "Discrepancies detected between SQLite desired state and Linux kernel state", - "expected_value": "zero_drift", - "observed_value": "1 drift actions pending", - "remediation_hint": "Execute 'nx9-wg reconcile apply' to synchronize changes", - "status": "warning" - }, - { - "check_name": "drift:forwarding:enable_forwarding", - "diagnostic_message": "IPv4 forwarding is disabled in kernel sysctl; enable for VPN routing", - "expected_value": null, - "observed_value": "ipv4_forward", - "remediation_hint": "Run 'nx9-wg reconcile apply'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "reconciliation", - "timestamp": "2026-08-16T10:46:33.057552368" - } -] - - >>> Diagnostics: system - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics system - [PASS] Diagnostics: system -[ - { - "checks": [ - { - "check_name": "hostname", - "diagnostic_message": "System hostname read successfully", - "expected_value": null, - "observed_value": "thakares-ideapad", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "os_architecture", - "diagnostic_message": "Supported target platform", - "expected_value": "linux-*", - "observed_value": "linux-x86_64", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "kernel_version", - "diagnostic_message": "Linux kernel release inspected", - "expected_value": null, - "observed_value": "7.1.8-arch1-3", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "memory_status", - "diagnostic_message": "System memory available", - "expected_value": null, - "observed_value": "MemTotal: 28526564 kB", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "sqlite_persistence", - "diagnostic_message": "SQLite WAL persistence layer is responsive", - "expected_value": "connected_and_healthy", - "observed_value": "connected_and_healthy", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "system", - "timestamp": "2026-08-16T10:46:33.063582958" - } -] - - >>> Diagnostics: network - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics network - [PASS] Diagnostics: network -[ - { - "checks": [ - { - "check_name": "linux_network_interfaces", - "diagnostic_message": "Network interfaces discovered in kernel", - "expected_value": null, - "observed_value": "2 interfaces (lo, wlp2s0)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "dns_nameservers", - "diagnostic_message": "System DNS nameservers configured", - "expected_value": null, - "observed_value": "127.0.0.1", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "network", - "timestamp": "2026-08-16T10:46:33.068654886" - } -] - - >>> Diagnostics: wan - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics wan - [PASS] Diagnostics: wan -[ - { - "checks": [ - { - "check_name": "default_gateway_route", - "diagnostic_message": "Default route to WAN/gateway is present", - "expected_value": "default_gateway_present", - "observed_value": "default_gateway_present", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "wan", - "timestamp": "2026-08-16T10:46:33.073128679" - } -] - - >>> Diagnostics: wireguard - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics wireguard - [PASS] Diagnostics: wireguard -[ - { - "checks": [ - { - "check_name": "configured_interfaces", - "diagnostic_message": "No WireGuard interfaces configured yet", - "expected_value": null, - "observed_value": "0 interfaces", - "remediation_hint": "Create an interface using 'nx9-wg interface create'", - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "wireguard", - "timestamp": "2026-08-16T10:46:33.077978869" - } -] - - >>> Diagnostics: routing - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics routing - [PASS] Diagnostics: routing -[ - { - "checks": [ - { - "check_name": "configured_routes", - "diagnostic_message": "Kernel routing rules configured in database", - "expected_value": null, - "observed_value": "0 total (0 active)", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "routing", - "timestamp": "2026-08-16T10:46:33.082776662" - } -] - - >>> Diagnostics: forwarding - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics forwarding - [PASS] Diagnostics: forwarding -[ - { - "checks": [ - { - "check_name": "ipv4_forwarding", - "diagnostic_message": "IPv4 packet forwarding is disabled in sysctl; VPN clients cannot route traffic", - "expected_value": "enabled", - "observed_value": "disabled", - "remediation_hint": "Enable IP forwarding with 'nx9-wg forwarding enable'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "forwarding", - "timestamp": "2026-08-16T10:46:33.087615541" - } -] - - >>> Diagnostics: firewall - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics firewall - [PASS] Diagnostics: firewall -[ - { - "checks": [ - { - "check_name": "firewall_rules_count", - "diagnostic_message": "Configured nftables packet filtering rules", - "expected_value": null, - "observed_value": "0 total (0 active)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "nftables_table_nx9_wg", - "diagnostic_message": "Dedicated table inet nx9_wg presence in kernel nftables", - "expected_value": "active", - "observed_value": "not_loaded", - "remediation_hint": "Synchronize firewall with 'nx9-wg firewall sync'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "firewall", - "timestamp": "2026-08-16T10:46:33.092628117" - } -] - - >>> Diagnostics: nat - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics nat - [PASS] Diagnostics: nat -[ - { - "checks": [ - { - "check_name": "nat_setting", - "diagnostic_message": "NAT masquerade setting configured in database", - "expected_value": null, - "observed_value": "enabled", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "nat", - "timestamp": "2026-08-16T10:46:33.098748636" - } -] - - >>> Diagnostics: mtu - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics mtu - [PASS] Diagnostics: mtu -[ - { - "checks": [ - { - "check_name": "client_profile_mobile_recommendation", - "diagnostic_message": "Recommended MTU for mobile/cellular connections is 1280 to prevent carrier fragmentation", - "expected_value": "1280 bytes", - "observed_value": "1280 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "client_profile_cgnat_recommendation", - "diagnostic_message": "Recommended MTU for CGNAT connections is 1360 to accommodate carrier-grade NAT encapsulation", - "expected_value": "1360 bytes", - "observed_value": "1360 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - }, - { - "check_name": "client_profile_wifi_recommendation", - "diagnostic_message": "Recommended MTU for standard Wi-Fi and wired connections is 1420 bytes", - "expected_value": "1420 bytes", - "observed_value": "1420 bytes (keepalive: 25s)", - "remediation_hint": null, - "status": "pass" - } - ], - "overall_status": "pass", - "subsystem": "mtu", - "timestamp": "2026-08-16T10:46:33.104585472" - } -] - - >>> Diagnostics: reconciliation - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db diagnostics reconciliation - [PASS] Diagnostics: reconciliation -[ - { - "checks": [ - { - "check_name": "overall_drift", - "diagnostic_message": "Discrepancies detected between SQLite desired state and Linux kernel state", - "expected_value": "zero_drift", - "observed_value": "1 drift actions pending", - "remediation_hint": "Execute 'nx9-wg reconcile apply' to synchronize changes", - "status": "warning" - }, - { - "check_name": "drift:forwarding:enable_forwarding", - "diagnostic_message": "IPv4 forwarding is disabled in kernel sysctl; enable for VPN routing", - "expected_value": null, - "observed_value": "ipv4_forward", - "remediation_hint": "Run 'nx9-wg reconcile apply'", - "status": "warning" - } - ], - "overall_status": "warning", - "subsystem": "reconciliation", - "timestamp": "2026-08-16T10:46:33.109960921" - } -] - [SKIP] Diagnostics: peer — requires LIVE=1 and peer context - -============================================================================ - 21 — Output Format Matrix -============================================================================ - - >>> Network list — table - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table network list - [PASS] Network list — table -(No items found) - - >>> Profile list — table - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table profile list - [PASS] Profile list — table -[ - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Android cellular client profile with 1280 MTU and 25s keepalive", - "device": "android", - "dns": null, - "id": "android-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Android Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Default CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Default Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "web", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Web client profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-web", - "is_builtin": true, - "mtu": 1420, - "name": "Default Web", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wifi", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wifi", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wi-Fi", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wired", - "created_at": "2026-08-16T10:46:32", - "description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wired", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wired", - "nat_type": "direct", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "jio-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Jio Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "jio", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "starlink-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Starlink CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "starlink", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "tmobile-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "T-Mobile Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "tmobile", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "verizon-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Verizon Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "verizon", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive", - "device": "ios", - "dns": null, - "id": "ios-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "iOS Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - } -] - - >>> System info — table - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table system info - [PASS] System info — table - arch : x86_64 - config_file : /etc/nx9-wg/config.toml - data_dir : /tmp/nx9-wg-cli-test.u7uMLB/data - database_path : /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db - log_level : info - os : linux - reconciliation_interval_secs: 60 - session_expiry_hours : 24 - version : 0.1.0 - - >>> System health — table - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table system health - [PASS] System health — table - database : connected - status : healthy - timestamp : 2026-08-16T10:46:33.133881082+00:00 - - >>> Audit list — table - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format table audit list - [PASS] Audit list — table -[ - { - "actor": "admin", - "created_at": "2026-08-16T10:46:32", - "event_type": "admin_initialized", - "id": 1, - "ip_address": null, - "message": "Administrator initialized via secure random generation", - "metadata": null, - "resource_id": "1", - "resource_type": "admin" - } -] - - >>> Network list — json - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json network list - [PASS] Network list — json -[] - - >>> Profile list — json - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json profile list - [PASS] Profile list — json -[ - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Android cellular client profile with 1280 MTU and 25s keepalive", - "device": "android", - "dns": null, - "id": "android-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Android Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Default CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Standard mobile carrier profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Default Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "web", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Web client profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-web", - "is_builtin": true, - "mtu": 1420, - "name": "Default Web", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wifi", - "created_at": "2026-08-16T10:46:32", - "description": "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wifi", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wi-Fi", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "wired", - "created_at": "2026-08-16T10:46:32", - "description": "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "default-wired", - "is_builtin": true, - "mtu": 1420, - "name": "Default Wired", - "nat_type": "direct", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "jio-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Jio Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "jio", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "other", - "created_at": "2026-08-16T10:46:32", - "description": "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "starlink-cgnat", - "is_builtin": true, - "mtu": 1360, - "name": "Starlink CGNAT", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "starlink", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "tmobile-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "T-Mobile Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "tmobile", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive", - "device": null, - "dns": null, - "id": "verizon-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "Verizon Mobile", - "nat_type": "cgnat", - "persistent_keepalive": 25, - "provider": "verizon", - "updated_at": "2026-08-16T10:46:32" - }, - { - "connection_type": "mobile", - "created_at": "2026-08-16T10:46:32", - "description": "Apple iOS cellular profile with 1280 MTU and 25s keepalive", - "device": "ios", - "dns": null, - "id": "ios-mobile", - "is_builtin": true, - "mtu": 1280, - "name": "iOS Mobile", - "nat_type": "unknown", - "persistent_keepalive": 25, - "provider": null, - "updated_at": "2026-08-16T10:46:32" - } -] - - >>> System info — json - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system info - [PASS] System info — json -{ - "arch": "x86_64", - "config_file": "/etc/nx9-wg/config.toml", - "data_dir": "/tmp/nx9-wg-cli-test.u7uMLB/data", - "database_path": "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db", - "log_level": "info", - "os": "linux", - "reconciliation_interval_secs": 60, - "session_expiry_hours": 24, - "version": "0.1.0" -} - - >>> System health — json - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json system health - [PASS] System health — json -{ - "database": "connected", - "status": "healthy", - "timestamp": "2026-08-16T10:46:33.161200976+00:00" -} - - >>> Audit list — json - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format json audit list - [PASS] Audit list — json -[ - { - "actor": "admin", - "created_at": "2026-08-16T10:46:32", - "event_type": "admin_initialized", - "id": 1, - "ip_address": null, - "message": "Administrator initialized via secure random generation", - "metadata": null, - "resource_id": "1", - "resource_type": "admin" - } -] - - >>> Network list — yaml - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml network list - [PASS] Network list — yaml - - >>> Profile list — yaml - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml profile list - [PASS] Profile list — yaml -- - connection_type: "mobile" - created_at: "2026-08-16T10:46:32" - description: "Android cellular client profile with 1280 MTU and 25s keepalive" - device: "android" - dns: null - id: "android-mobile" - is_builtin: true - mtu: 1280 - name: "Android Mobile" - nat_type: "unknown" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" -- - connection_type: "other" - created_at: "2026-08-16T10:46:32" - description: "Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive" - device: null - dns: null - id: "default-cgnat" - is_builtin: true - mtu: 1360 - name: "Default CGNAT" - nat_type: "cgnat" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" -- - connection_type: "mobile" - created_at: "2026-08-16T10:46:32" - description: "Standard mobile carrier profile with 1280 MTU and 25s keepalive" - device: null - dns: null - id: "default-mobile" - is_builtin: true - mtu: 1280 - name: "Default Mobile" - nat_type: "unknown" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" -- - connection_type: "web" - created_at: "2026-08-16T10:46:32" - description: "Standard Web client profile with 1420 MTU and 25s keepalive" - device: null - dns: null - id: "default-web" - is_builtin: true - mtu: 1420 - name: "Default Web" - nat_type: "unknown" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" -- - connection_type: "wifi" - created_at: "2026-08-16T10:46:32" - description: "Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive" - device: null - dns: null - id: "default-wifi" - is_builtin: true - mtu: 1420 - name: "Default Wi-Fi" - nat_type: "unknown" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" -- - connection_type: "wired" - created_at: "2026-08-16T10:46:32" - description: "High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive" - device: null - dns: null - id: "default-wired" - is_builtin: true - mtu: 1420 - name: "Default Wired" - nat_type: "direct" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" -- - connection_type: "mobile" - created_at: "2026-08-16T10:46:32" - description: "Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive" - device: null - dns: null - id: "jio-mobile" - is_builtin: true - mtu: 1280 - name: "Jio Mobile" - nat_type: "cgnat" - persistent_keepalive: 25 - provider: "jio" - updated_at: "2026-08-16T10:46:32" -- - connection_type: "other" - created_at: "2026-08-16T10:46:32" - description: "Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive" - device: null - dns: null - id: "starlink-cgnat" - is_builtin: true - mtu: 1360 - name: "Starlink CGNAT" - nat_type: "cgnat" - persistent_keepalive: 25 - provider: "starlink" - updated_at: "2026-08-16T10:46:32" -- - connection_type: "mobile" - created_at: "2026-08-16T10:46:32" - description: "T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive" - device: null - dns: null - id: "tmobile-mobile" - is_builtin: true - mtu: 1280 - name: "T-Mobile Mobile" - nat_type: "cgnat" - persistent_keepalive: 25 - provider: "tmobile" - updated_at: "2026-08-16T10:46:32" -- - connection_type: "mobile" - created_at: "2026-08-16T10:46:32" - description: "Verizon Wireless mobile profile with 1280 MTU and 25s keepalive" - device: null - dns: null - id: "verizon-mobile" - is_builtin: true - mtu: 1280 - name: "Verizon Mobile" - nat_type: "cgnat" - persistent_keepalive: 25 - provider: "verizon" - updated_at: "2026-08-16T10:46:32" -- - connection_type: "mobile" - created_at: "2026-08-16T10:46:32" - description: "Apple iOS cellular profile with 1280 MTU and 25s keepalive" - device: "ios" - dns: null - id: "ios-mobile" - is_builtin: true - mtu: 1280 - name: "iOS Mobile" - nat_type: "unknown" - persistent_keepalive: 25 - provider: null - updated_at: "2026-08-16T10:46:32" - - >>> System info — yaml - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml system info - [PASS] System info — yaml -arch: "x86_64" -config_file: "/etc/nx9-wg/config.toml" -data_dir: "/tmp/nx9-wg-cli-test.u7uMLB/data" -database_path: "/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db" -log_level: "info" -os: "linux" -reconciliation_interval_secs: 60 -session_expiry_hours: 24 -version: "0.1.0" - - >>> System health — yaml - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml system health - [PASS] System health — yaml -database: "connected" -status: "healthy" -timestamp: "2026-08-16T10:46:33.188558932+00:00" - - >>> Audit list — yaml - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format yaml audit list - [PASS] Audit list — yaml -- - actor: "admin" - created_at: "2026-08-16T10:46:32" - event_type: "admin_initialized" - id: 1 - ip_address: null - message: "Administrator initialized via secure random generation" - metadata: null - resource_id: "1" - resource_type: "admin" - - >>> Network list — csv - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv network list - [PASS] Network list — csv - - >>> Profile list — csv - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv profile list - [PASS] Profile list — csv -connection_type,created_at,description,device,dns,id,is_builtin,mtu,name,nat_type,persistent_keepalive,provider,updated_at -mobile,2026-08-16T10:46:32,Android cellular client profile with 1280 MTU and 25s keepalive,android,null,android-mobile,true,1280,Android Mobile,unknown,25,null,2026-08-16T10:46:32 -other,2026-08-16T10:46:32,Carrier-grade NAT environment profile with 1360 MTU and 25s keepalive,null,null,default-cgnat,true,1360,Default CGNAT,cgnat,25,null,2026-08-16T10:46:32 -mobile,2026-08-16T10:46:32,Standard mobile carrier profile with 1280 MTU and 25s keepalive,null,null,default-mobile,true,1280,Default Mobile,unknown,25,null,2026-08-16T10:46:32 -web,2026-08-16T10:46:32,Standard Web client profile with 1420 MTU and 25s keepalive,null,null,default-web,true,1420,Default Web,unknown,25,null,2026-08-16T10:46:32 -wifi,2026-08-16T10:46:32,Standard Wi-Fi wireless profile with 1420 MTU and 25s keepalive,null,null,default-wifi,true,1420,Default Wi-Fi,unknown,25,null,2026-08-16T10:46:32 -wired,2026-08-16T10:46:32,High-throughput wired Ethernet profile with 1420 MTU and 25s keepalive,null,null,default-wired,true,1420,Default Wired,direct,25,null,2026-08-16T10:46:32 -mobile,2026-08-16T10:46:32,Reliance Jio 4G/5G mobile profile with 1280 MTU and 25s keepalive,null,null,jio-mobile,true,1280,Jio Mobile,cgnat,25,jio,2026-08-16T10:46:32 -other,2026-08-16T10:46:32,Starlink satellite CGNAT profile with 1360 MTU and 25s keepalive,null,null,starlink-cgnat,true,1360,Starlink CGNAT,cgnat,25,starlink,2026-08-16T10:46:32 -mobile,2026-08-16T10:46:32,T-Mobile US IPv6/CGNAT mobile profile with 1280 MTU and 25s keepalive,null,null,tmobile-mobile,true,1280,T-Mobile Mobile,cgnat,25,tmobile,2026-08-16T10:46:32 -mobile,2026-08-16T10:46:32,Verizon Wireless mobile profile with 1280 MTU and 25s keepalive,null,null,verizon-mobile,true,1280,Verizon Mobile,cgnat,25,verizon,2026-08-16T10:46:32 -mobile,2026-08-16T10:46:32,Apple iOS cellular profile with 1280 MTU and 25s keepalive,ios,null,ios-mobile,true,1280,iOS Mobile,unknown,25,null,2026-08-16T10:46:32 - - >>> System info — csv - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv system info - [PASS] System info — csv -arch,config_file,data_dir,database_path,log_level,os,reconciliation_interval_secs,session_expiry_hours,version -x86_64,/etc/nx9-wg/config.toml,/tmp/nx9-wg-cli-test.u7uMLB/data,/tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db,info,linux,60,24,0.1.0 - - >>> System health — csv - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv system health - [PASS] System health — csv -database,status,timestamp -connected,healthy,2026-08-16T10:46:33.216139326+00:00 - - >>> Audit list — csv - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --format csv audit list - [PASS] Audit list — csv -actor,created_at,event_type,id,ip_address,message,metadata,resource_id,resource_type -admin,2026-08-16T10:46:32,admin_initialized,1,null,Administrator initialized via secure random generation,null,1,admin - -============================================================================ - 22 — Global CLI Options -============================================================================ - - >>> Quiet mode - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --quiet system health - [PASS] Quiet mode - database : connected - status : healthy - timestamp : 2026-08-16T10:46:33.227314621+00:00 - - >>> JSON shortcut - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --json system health - [PASS] JSON shortcut -{ - "database": "connected", - "status": "healthy", - "timestamp": "2026-08-16T10:46:33.233149022+00:00" -} - - >>> Verbose mode - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data --database /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db --verbose system health - [PASS] Verbose mode - database : connected - status : healthy - timestamp : 2026-08-16T10:46:33.238155166+00:00 - -============================================================================ - 23 — NX9_WG_* Environment Namespace -============================================================================ - [PASS] NX9_WG_LOG_LEVEL accepted - -============================================================================ - 24 — Explicit Database Path Resolution -============================================================================ - - >>> Explicit nested database path - /mnt/Programs/nx9-wg/target/release/nx9-wg --database /tmp/nx9-wg-cli-test.u7uMLB/explicit/nested/nx9-wg.db system health - [FAIL] Explicit nested database path (exit=1) - --- stderr --- - Error: Sqlx(Database(SqliteError { code: 14, message: "unable to open database file" })) - [FAIL] Explicit database file created - -============================================================================ - 25 — Data Directory Resolution -============================================================================ - - >>> Database created from data-dir - /mnt/Programs/nx9-wg/target/release/nx9-wg --data-dir /tmp/nx9-wg-cli-test.u7uMLB/data-only system health - [PASS] Database created from data-dir - database : connected - status : healthy - timestamp : 2026-08-16T10:46:33.256892811+00:00 - [PASS] Database exists below data-dir: /tmp/nx9-wg-cli-test.u7uMLB/data-only/nx9-wg.db - -============================================================================ - 26 — Source-Level Architecture Safety -============================================================================ - [PASS] No external subprocess invocation in production Rust - [PASS] No forbidden technical-debt markers - [PASS] SQL isolated from application root - -============================================================================ - 27 — Environment Variable Namespace Source Audit -============================================================================ - [PASS] No suspicious environment namespace references - -============================================================================ - 28 — FINAL VERIFICATION SUMMARY -============================================================================ - - Binary: - /mnt/Programs/nx9-wg/target/release/nx9-wg - - Project: - /mnt/Programs/nx9-wg - - Temporary test root: - /tmp/nx9-wg-cli-test.u7uMLB - - Test database: - /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db - - LIVE mode: - 0 - - ------------------------------------------------------------------------ - PASS : 199 - FAIL : 4 - SKIP : 7 - TOTAL: 210 - ------------------------------------------------------------------------ - -RESULT: FAIL - -One or more verification checks failed. - -The temporary environment will be preserved for investigation. - - -============================================================================ - nx9-wg CLI verification finished -============================================================================ - -RESULT: FAIL - - PASS : 199 - FAIL : 4 - SKIP : 7 - TOTAL: 210 - -Temporary test data PRESERVED for investigation: - /tmp/nx9-wg-cli-test.u7uMLB - -Database: - /tmp/nx9-wg-cli-test.u7uMLB/data/nx9-wg.db - -Password file: - /tmp/nx9-wg-cli-test.u7uMLB/admin-password - -To inspect: - ls -la "/tmp/nx9-wg-cli-test.u7uMLB" - ls -la "/tmp/nx9-wg-cli-test.u7uMLB/data" - -