chore(test): проверить отказ записи ревизии на стенде
This commit is contained in:
1 parent
8eaf78b686
commit
0067c2eeff
9 files changed
+682
-7
No files matched your search
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"backendSource": "8eaf78b",
|
||||
"frontendSource": "479f2ad",
|
||||
"name": "mm-acceptance-wg-1791512986372",
|
||||
"cases": [
|
||||
{
|
||||
"serverId": "1",
|
||||
"width": 1280,
|
||||
"status": 502,
|
||||
"state": "applied",
|
||||
"warningVisible": true,
|
||||
"formAndServerRetained": true,
|
||||
"nativeObjectsRemainApplied": true,
|
||||
"noAutomaticRetry": true
|
||||
},
|
||||
{
|
||||
"serverId": "2",
|
||||
"width": 320,
|
||||
"status": 502,
|
||||
"state": "applied",
|
||||
"warningVisible": true,
|
||||
"formAndServerRetained": true,
|
||||
"nativeObjectsRemainApplied": true,
|
||||
"noAutomaticRetry": true
|
||||
}
|
||||
],
|
||||
"requests": [
|
||||
{
|
||||
"status": 502,
|
||||
"port": "8020"
|
||||
},
|
||||
{
|
||||
"status": 502,
|
||||
"port": "8020"
|
||||
}
|
||||
],
|
||||
"native": {
|
||||
"ok": true,
|
||||
"handshakeConfirmed": true,
|
||||
"pings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"received": 3
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"received": 3
|
||||
}
|
||||
],
|
||||
"roundtrip": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"format": "conf",
|
||||
"explicitNameAdded": true,
|
||||
"privateKeyPreservedInMemory": true,
|
||||
"dryRunStatus": 200,
|
||||
"dryRunNativeUnchanged": true,
|
||||
"checks": {
|
||||
"interfacePresent": true,
|
||||
"interfaceName": true,
|
||||
"interfaceCommentAbsent": true,
|
||||
"interfacePrivateScalarEquivalent": true,
|
||||
"interfacePublicIdentity": true,
|
||||
"listenPort": true,
|
||||
"mtu": true,
|
||||
"onePeer": true,
|
||||
"peerIdentity": true,
|
||||
"allowedAddresses": true,
|
||||
"configuredEndpointAddress": true,
|
||||
"configuredEndpointPort": true,
|
||||
"keepalive": true,
|
||||
"peerCommentAbsent": true,
|
||||
"address": true
|
||||
},
|
||||
"nativeParametersMatch": true,
|
||||
"interfacePublicIdentityUnchanged": true,
|
||||
"privateScalarEquivalent": true,
|
||||
"privateEncodingUnchanged": true,
|
||||
"linkedAddressAndPeerPresent": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"format": "conf",
|
||||
"explicitNameAdded": true,
|
||||
"privateKeyPreservedInMemory": true,
|
||||
"dryRunStatus": 200,
|
||||
"dryRunNativeUnchanged": true,
|
||||
"checks": {
|
||||
"interfacePresent": true,
|
||||
"interfaceName": true,
|
||||
"interfaceCommentAbsent": true,
|
||||
"interfacePrivateScalarEquivalent": true,
|
||||
"interfacePublicIdentity": true,
|
||||
"listenPort": true,
|
||||
"mtu": true,
|
||||
"onePeer": true,
|
||||
"peerIdentity": true,
|
||||
"allowedAddresses": true,
|
||||
"configuredEndpointAddress": true,
|
||||
"configuredEndpointPort": true,
|
||||
"keepalive": true,
|
||||
"peerCommentAbsent": true,
|
||||
"address": true
|
||||
},
|
||||
"nativeParametersMatch": true,
|
||||
"interfacePublicIdentityUnchanged": true,
|
||||
"privateScalarEquivalent": true,
|
||||
"privateEncodingUnchanged": false,
|
||||
"linkedAddressAndPeerPresent": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"pageErrors": [],
|
||||
"transport": "Playwright URL continuation to real isolated HTTP endpoint; no response fulfillment or mocked SQL/RouterOS",
|
||||
"limits": [
|
||||
"Scoped audit INSERT permission fault; not network disconnect or process loss",
|
||||
"Keys/configs held only in memory; no screenshots/traces"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"backendSource": "8eaf78b",
|
||||
"frontendSource": "479f2ad",
|
||||
"httpMocks": false,
|
||||
"pages": [
|
||||
{
|
||||
"path": "/dashboard",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/servers",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/uptime?tab=speed",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/settings",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/filters",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/wireguard",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"badApiResponses": []
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"backendSource": "8eaf78b68631d774bf18ae049d0e11f90fe098d8",
|
||||
"frontendSource": "479f2ad",
|
||||
"archiveSha256": "a685c56eff695beb8d30eaaf49c6ca03d97011e9a306679e2173d7485df7540a",
|
||||
"backendImage": "sha256:2f94d4d52f8c2a23806ac7795af3d2346f9dd3114e2fcda4237b3be3c6513f69",
|
||||
"backendHealthy": true,
|
||||
"frontendContainerUnchanged": true,
|
||||
"networkNoneRevisionAssertion": true,
|
||||
"backup": {
|
||||
"bytes": 2382377,
|
||||
"mode": "0600",
|
||||
"pgRestoreListPassed": true,
|
||||
"retainedOnTestServerOnly": true
|
||||
},
|
||||
"before": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9
|
||||
},
|
||||
"after": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9,
|
||||
"temporaryAuditRoles": 0
|
||||
},
|
||||
"mainServices": 3,
|
||||
"temporaryFixtureContainersRemaining": 0,
|
||||
"auditRevisionsIntentionallyRetained": true,
|
||||
"mainBackendPrivilegesUnchanged": true
|
||||
}
|
||||
@@ -0,0 +1,426 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"backendSource": "8eaf78b",
|
||||
"frontendSource": "479f2ad",
|
||||
"name": "mm-acceptance-wg-1791512986372",
|
||||
"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/*1F",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/1/*1F",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/api/wireguard",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/import",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/export",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/import",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/1/*1F",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/2/*1A",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/peers/1/*1E",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/1/*20",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/peers/2/*1A",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/2/*1B",
|
||||
"status": 200
|
||||
}
|
||||
],
|
||||
"pings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"target": "198.18.255.242",
|
||||
"interface": "mm-acceptance-wg-1791512986372",
|
||||
"received": 3,
|
||||
"rows": [
|
||||
{
|
||||
"sent": "1",
|
||||
"received": "1",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms602us",
|
||||
"avg-rtt": "54ms602us"
|
||||
},
|
||||
{
|
||||
"sent": "2",
|
||||
"received": "2",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms556us",
|
||||
"avg-rtt": "54ms579us"
|
||||
},
|
||||
{
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms589us",
|
||||
"avg-rtt": "54ms582us"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"target": "198.18.255.241",
|
||||
"interface": "mm-acceptance-wg-1791512986372",
|
||||
"received": 3,
|
||||
"rows": [
|
||||
{
|
||||
"sent": "1",
|
||||
"received": "1",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms765us",
|
||||
"avg-rtt": "54ms765us"
|
||||
},
|
||||
{
|
||||
"sent": "2",
|
||||
"received": "2",
|
||||
"packet-loss": "0",
|
||||
"time": "54ms718us",
|
||||
"avg-rtt": "54ms741us"
|
||||
},
|
||||
{
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"time": "55ms13us",
|
||||
"avg-rtt": "54ms832us"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
],
|
||||
"rejections": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"status": 400,
|
||||
"dryRun": false,
|
||||
"nativeUnchanged": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"status": 400,
|
||||
"dryRun": true,
|
||||
"nativeUnchanged": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"status": 400,
|
||||
"dryRun": false,
|
||||
"nativeUnchanged": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"status": 400,
|
||||
"dryRun": true,
|
||||
"nativeUnchanged": true
|
||||
}
|
||||
],
|
||||
"nativeKeyGenerationConfirmed": true,
|
||||
"connectedState": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"interface": {
|
||||
"rosId": "*1F",
|
||||
"appId": "1:*1F",
|
||||
"name": "mm-acceptance-wg-1791512986372",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791512986372"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.241/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*1D",
|
||||
"name": "mm-acceptance-wg-1791512986372-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-1791512986372"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"interface": {
|
||||
"rosId": "*1A",
|
||||
"appId": "2:*1A",
|
||||
"name": "mm-acceptance-wg-1791512986372",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false",
|
||||
"userComment": "Temporary UX acceptance mm-acceptance-wg-1791512986372"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.242/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*19",
|
||||
"name": "mm-acceptance-wg-1791512986372-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-1791512986372"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"handshakeConfirmed": true,
|
||||
"bidirectionalPingPassed": true,
|
||||
"catalogMatchesNative": true,
|
||||
"roundtrip": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"format": "conf",
|
||||
"explicitNameAdded": true,
|
||||
"privateKeyPreservedInMemory": true,
|
||||
"dryRunStatus": 200,
|
||||
"dryRunNativeUnchanged": true,
|
||||
"checks": {
|
||||
"interfacePresent": true,
|
||||
"interfaceName": true,
|
||||
"interfaceCommentAbsent": true,
|
||||
"interfacePrivateScalarEquivalent": true,
|
||||
"interfacePublicIdentity": true,
|
||||
"listenPort": true,
|
||||
"mtu": true,
|
||||
"onePeer": true,
|
||||
"peerIdentity": true,
|
||||
"allowedAddresses": true,
|
||||
"configuredEndpointAddress": true,
|
||||
"configuredEndpointPort": true,
|
||||
"keepalive": true,
|
||||
"peerCommentAbsent": true,
|
||||
"address": true
|
||||
},
|
||||
"nativeParametersMatch": true,
|
||||
"interfacePublicIdentityUnchanged": true,
|
||||
"privateScalarEquivalent": true,
|
||||
"privateEncodingUnchanged": true,
|
||||
"linkedAddressAndPeerPresent": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"format": "conf",
|
||||
"explicitNameAdded": true,
|
||||
"privateKeyPreservedInMemory": true,
|
||||
"dryRunStatus": 200,
|
||||
"dryRunNativeUnchanged": true,
|
||||
"checks": {
|
||||
"interfacePresent": true,
|
||||
"interfaceName": true,
|
||||
"interfaceCommentAbsent": true,
|
||||
"interfacePrivateScalarEquivalent": true,
|
||||
"interfacePublicIdentity": true,
|
||||
"listenPort": true,
|
||||
"mtu": true,
|
||||
"onePeer": true,
|
||||
"peerIdentity": true,
|
||||
"allowedAddresses": true,
|
||||
"configuredEndpointAddress": true,
|
||||
"configuredEndpointPort": true,
|
||||
"keepalive": true,
|
||||
"peerCommentAbsent": true,
|
||||
"address": true
|
||||
},
|
||||
"nativeParametersMatch": true,
|
||||
"interfacePublicIdentityUnchanged": true,
|
||||
"privateScalarEquivalent": true,
|
||||
"privateEncodingUnchanged": false,
|
||||
"linkedAddressAndPeerPresent": true
|
||||
}
|
||||
],
|
||||
"collisions": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"status": 409,
|
||||
"nativeUnchanged": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"status": 409,
|
||||
"nativeUnchanged": true
|
||||
}
|
||||
],
|
||||
"auditFault": {
|
||||
"isolatedProcess": true,
|
||||
"temporaryNoLoginRole": true,
|
||||
"selectAllowed": true,
|
||||
"revisionInsertDenied": true,
|
||||
"mainBackendPrivilegesUnchanged": true
|
||||
},
|
||||
"deniedRevisionWrites": 2,
|
||||
"postApplyAuditState": "applied",
|
||||
"importedHandshakeConfirmed": true,
|
||||
"importedPings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"received": 3
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"received": 3
|
||||
}
|
||||
],
|
||||
"temporaryRoleRemoved": true,
|
||||
"afterBrowser": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"interface": {
|
||||
"rosId": "*20",
|
||||
"appId": "1:*20",
|
||||
"name": "mm-acceptance-wg-1791512986372",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.241/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*1E",
|
||||
"name": "peer30",
|
||||
"allowedAddresses": "198.18.255.242/32",
|
||||
"endpoint": "104.165.244.7:51879",
|
||||
"handshake": "2s",
|
||||
"rx": "756",
|
||||
"tx": "848",
|
||||
"disabled": "false"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"interface": {
|
||||
"rosId": "*1B",
|
||||
"appId": "2:*1B",
|
||||
"name": "mm-acceptance-wg-1791512986372",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"running": "true",
|
||||
"disabled": "false"
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.242/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*1A",
|
||||
"name": "peer26",
|
||||
"allowedAddresses": "198.18.255.241/32",
|
||||
"endpoint": "194.226.121.150:51879",
|
||||
"handshake": "2s",
|
||||
"rx": "700",
|
||||
"tx": "756",
|
||||
"disabled": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"limits": [
|
||||
"Only own WireGuard interface/peer/IP and connected route changed; no default routes/firewall changes",
|
||||
"Real isolated HTTP endpoint/PG SET ROLE permission denial after native apply; main backend unchanged; config/keys only in memory",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user