Files
MikrotikManager/docs/ux-ui/acceptance/wg-export-native-2026-10-08.json
T

387 lines
9.6 KiB
JSON

{
"date": "2026-10-08",
"backendSource": "3722fad",
"frontendSource": "bf43263",
"name": "mm-acceptance-wg-1791475605238",
"subnet": "198.18.255.240/30",
"listenPort": 51879,
"realRouterOs": true,
"changes": [
{
"method": "POST",
"path": "/api/wireguard/interfaces",
"status": 201
},
{
"method": "POST",
"path": "/api/wireguard/interfaces",
"status": 201
},
{
"method": "POST",
"path": "/api/wireguard/peers",
"status": 201
},
{
"method": "POST",
"path": "/api/wireguard/peers",
"status": 201
},
{
"method": "PATCH",
"path": "/api/wireguard/interfaces/1/*D",
"status": 200
},
{
"method": "PATCH",
"path": "/api/wireguard/interfaces/1/*D",
"status": 200
},
{
"method": "GET",
"path": "/api/wireguard",
"status": 200
},
{
"method": "POST",
"path": "/api/wireguard/export",
"status": 200
},
{
"method": "POST",
"path": "/api/wireguard/export",
"status": 200
},
{
"method": "POST",
"path": "/api/wireguard/export",
"status": 200
},
{
"method": "POST",
"path": "/api/wireguard/export",
"status": 200
},
{
"method": "POST",
"path": "/api/wireguard/export",
"status": 200
},
{
"method": "POST",
"path": "/api/wireguard/export",
"status": 200
},
{
"method": "DELETE",
"path": "/api/wireguard/peers/1/*9",
"status": 200
},
{
"method": "DELETE",
"path": "/api/wireguard/interfaces/1/*D",
"status": 200
},
{
"method": "DELETE",
"path": "/api/wireguard/peers/2/*6",
"status": 200
},
{
"method": "DELETE",
"path": "/api/wireguard/interfaces/2/*9",
"status": 200
}
],
"pings": [
{
"serverId": 1,
"target": "198.18.255.242",
"interface": "mm-acceptance-wg-1791475605238",
"received": 3,
"rows": [
{
"sent": "1",
"received": "1",
"packet-loss": "0",
"time": "54ms786us",
"avg-rtt": "54ms786us"
},
{
"sent": "2",
"received": "2",
"packet-loss": "0",
"time": "54ms652us",
"avg-rtt": "54ms719us"
},
{
"sent": "3",
"received": "3",
"packet-loss": "0",
"time": "62ms502us",
"avg-rtt": "57ms313us"
}
]
},
{
"serverId": 2,
"target": "198.18.255.241",
"interface": "mm-acceptance-wg-1791475605238",
"received": 3,
"rows": [
{
"sent": "1",
"received": "1",
"packet-loss": "0",
"time": "58ms714us",
"avg-rtt": "58ms714us"
},
{
"sent": "2",
"received": "2",
"packet-loss": "0",
"time": "56ms781us",
"avg-rtt": "57ms747us"
},
{
"sent": "3",
"received": "3",
"packet-loss": "0",
"time": "56ms597us",
"avg-rtt": "57ms364us"
}
]
}
],
"cleanup": [
{
"serverId": 1,
"/interface/wireguard": true,
"/interface/wireguard/peers": true,
"/ip/address": true,
"/ip/route": true,
"/ip/firewall/filter": true,
"/ip/firewall/nat": true,
"/ip/firewall/mangle": true
},
{
"serverId": 2,
"/interface/wireguard": true,
"/interface/wireguard/peers": true,
"/ip/address": true,
"/ip/route": true,
"/ip/firewall/filter": true,
"/ip/firewall/nat": true,
"/ip/firewall/mangle": true
}
],
"nativeKeyGenerationConfirmed": true,
"connectedState": [
{
"serverId": 1,
"interface": {
"rosId": "*D",
"appId": "1:*D",
"name": "mm-acceptance-wg-1791475605238",
"listenPort": "51879",
"mtu": "1420",
"running": "true",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
},
"addresses": [
"198.18.255.241/30"
],
"peers": [
{
"rosId": "*9",
"name": "mm-acceptance-wg-1791475605238-peer",
"allowedAddresses": "198.18.255.242/32",
"endpoint": "104.165.244.7:51879",
"handshake": "1s",
"rx": "180",
"tx": "272",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
}
]
},
{
"serverId": 2,
"interface": {
"rosId": "*9",
"appId": "2:*9",
"name": "mm-acceptance-wg-1791475605238",
"listenPort": "51879",
"mtu": "1420",
"running": "true",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
},
"addresses": [
"198.18.255.242/30"
],
"peers": [
{
"rosId": "*6",
"name": "mm-acceptance-wg-1791475605238-peer",
"allowedAddresses": "198.18.255.241/32",
"endpoint": "194.226.121.150:51879",
"handshake": "1s",
"rx": "124",
"tx": "180",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
}
]
}
],
"handshakeConfirmed": true,
"bidirectionalPingPassed": true,
"catalogMatchesNative": true,
"exports": [
{
"serverId": 1,
"format": "rsc",
"status": 200,
"privateKeyAbsent": true,
"selectedParametersMatch": true,
"configurationNotPersisted": true
},
{
"serverId": 1,
"format": "conf",
"status": 200,
"privateKeyAbsent": true,
"selectedParametersMatch": true,
"configurationNotPersisted": true
},
{
"serverId": 1,
"format": "peer-conf",
"status": 200,
"privateKeyAbsent": true,
"configurationNotPersisted": true,
"selectedPeerAndServerKeyMatch": true,
"clientEndpointCorrect": false,
"clientTemplateReady": false
},
{
"serverId": 2,
"format": "rsc",
"status": 200,
"privateKeyAbsent": true,
"selectedParametersMatch": true,
"configurationNotPersisted": true
},
{
"serverId": 2,
"format": "conf",
"status": 200,
"privateKeyAbsent": true,
"selectedParametersMatch": true,
"configurationNotPersisted": true
},
{
"serverId": 2,
"format": "peer-conf",
"status": 200,
"privateKeyAbsent": true,
"configurationNotPersisted": true,
"selectedPeerAndServerKeyMatch": true,
"clientEndpointCorrect": false,
"clientTemplateReady": false
}
],
"peerClientDefaults": [
{
"serverId": 1,
"endpointIsRemotePeer": true,
"endpointIsExportingServer": false,
"clientAddressPresent": false,
"allowedAddressIsRemotePeer": true
},
{
"serverId": 2,
"endpointIsRemotePeer": true,
"endpointIsExportingServer": false,
"clientAddressPresent": false,
"allowedAddressIsRemotePeer": true
}
],
"afterBrowserDelete": [
{
"serverId": 1,
"interface": {
"rosId": "*D",
"appId": "1:*D",
"name": "mm-acceptance-wg-1791475605238",
"listenPort": "51879",
"mtu": "1420",
"running": "true",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
},
"addresses": [
"198.18.255.241/30"
],
"peers": [
{
"rosId": "*9",
"name": "mm-acceptance-wg-1791475605238-peer",
"allowedAddresses": "198.18.255.242/32",
"endpoint": "104.165.244.7:51879",
"handshake": "1m48s",
"rx": "1396",
"tx": "912",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
}
]
},
{
"serverId": 2,
"interface": {
"rosId": "*9",
"appId": "2:*9",
"name": "mm-acceptance-wg-1791475605238",
"listenPort": "51879",
"mtu": "1420",
"running": "true",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
},
"addresses": [
"198.18.255.242/30"
],
"peers": [
{
"rosId": "*6",
"name": "mm-acceptance-wg-1791475605238-peer",
"allowedAddresses": "198.18.255.241/32",
"endpoint": "194.226.121.150:51879",
"handshake": "1m48s",
"rx": "764",
"tx": "1396",
"disabled": "false",
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791475605238"
}
]
}
],
"limits": [
"Only own WireGuard interface/peer/IP and connected route changed; no default routes/firewall changes",
"Export verification is read-only; fixture interfaces and linked objects removed by harness",
"Private/public/preshared keys omitted from report; native generation and peer association checked in memory",
"Handshake and short ICMP connectivity, not throughput, RBAC or interrupted mutation",
"WireGuard audit revisions intentionally retained",
"Only API export includePrivateKey=false tested; UI live export currently requests private keys for RSC/CONF and was not invoked"
],
"finding": {
"kind": "peer-conf defaults",
"endpointPointsToRemotePeerInsteadOfExportingServer": true,
"clientAddressMissingWithoutClientMetadata": true,
"clientReadyAcceptanceOpen": true
}
}