Problem
The appliance rejects WiFi connections to open (password-less) networks. Three layers enforce a password requirement:
- API (
api.rs:3905) — password.len() < 8 check rejects empty passwords
- Shell script (
wifi-connect.sh:36) — exits on empty PSK
- NM keyfile (
wifi-connect.sh:59-62) — always writes key-mgmt=wpa-psk
Fix
WifiReq.password is now #[serde(default)] (optional, defaults to "")
- API allows empty password (skip the 8-char minimum check)
- Shell script only requires non-empty SSID; PSK can be empty
- NM keyfile: omits
[wifi-security] section entirely for open networks
- UI placeholder updated to indicate open networks are supported
Files changed
src/cognitum-agent/src/api.rs — serde default, relaxed validation, UI placeholder
scripts/cognitum/wifi-connect.sh — conditional NM keyfile, safe JSON parsing
Test plan
Problem
The appliance rejects WiFi connections to open (password-less) networks. Three layers enforce a password requirement:
api.rs:3905) —password.len() < 8check rejects empty passwordswifi-connect.sh:36) — exits on empty PSKwifi-connect.sh:59-62) — always writeskey-mgmt=wpa-pskFix
WifiReq.passwordis now#[serde(default)](optional, defaults to"")[wifi-security]section entirely for open networksFiles changed
src/cognitum-agent/src/api.rs— serde default, relaxed validation, UI placeholderscripts/cognitum/wifi-connect.sh— conditional NM keyfile, safe JSON parsingTest plan
POST /api/v1/wifi/connect {"ssid":"OpenNet"}[wifi-security]section for open networks