fix(network): защитить ключи WireGuard и режим просмотра операций

This commit is contained in:
Denozordec committed 2026-10-13 20:12:33 +07:00
1 parent c8f9c83f45
commit a404da768d
23 files changed
+1648 -36

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,15 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"backendSourceFilesMatched": 470,
"frontendSourceFilesMatched": 527,
"compiledMatched": 1044,
"backendImage": "mmapp-test/backend:ux-native208",
"backendImageId": "sha256:46923e412d3e7c89f79a4c7757a64d8226029988ce4e865398ad224c6fb2b2e7",
"frontendImage": "mmapp-test/frontend:ux-native208",
"frontendImageId": "sha256:5672a5501fb316b5d8885854328607efa6d58ae60804d6b22adab0516b8e0ee56",
"backendHealthy": true,
"ownDatabasesRolesContainersRemoved": 3,
"ownedNativeInterfacesCreatedAndRemoved": 2,
"chrPasswordsChanged": false
}
@@ -0,0 +1,18 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"uniqueCases": 53,
"finalReadonly": {
"startTime": "2026-10-13T12:58:59.011Z",
"duration": 27098.076,
"expected": 20,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"unchangedRegressionPassed": 33,
"initialFailedReadonlyFixture": 2,
"initialFailureReason": "GRE fixture omitted required ipsec:null; corrected fixture, writer role UI enabled",
"allUniquePassed": true,
"scope": "20 reader/writer PC/mobile workspaces +33 history/readiness/refresh regressions; no real native mutation"
}
@@ -0,0 +1,175 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"runtime": "ux-native208",
"cases": [
{
"section": "wireguard",
"role": "reader",
"width": 1440,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "ipsec",
"role": "reader",
"width": 1440,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "gre",
"role": "reader",
"width": 1440,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "firewall",
"role": "reader",
"width": 1440,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "filters",
"role": "reader",
"width": 1440,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "wireguard",
"role": "admin",
"width": 1440,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "ipsec",
"role": "admin",
"width": 1440,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "gre",
"role": "admin",
"width": 1440,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "firewall",
"role": "admin",
"width": 1440,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "filters",
"role": "admin",
"width": 1440,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "wireguard",
"role": "reader",
"width": 320,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "ipsec",
"role": "reader",
"width": 320,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "gre",
"role": "reader",
"width": 320,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "firewall",
"role": "reader",
"width": 320,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "filters",
"role": "reader",
"width": 320,
"writeControlAllowed": false,
"actualNativeList": true,
"applied": false
},
{
"section": "wireguard",
"role": "admin",
"width": 320,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "ipsec",
"role": "admin",
"width": 320,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "gre",
"role": "admin",
"width": 320,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "firewall",
"role": "admin",
"width": 320,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
},
{
"section": "filters",
"role": "admin",
"width": 320,
"writeControlAllowed": true,
"actualNativeList": true,
"applied": false
}
],
"realPortalJWT": true,
"apiMocks": false,
"mutationRequests": 0,
"pageErrors": 0,
"ownWireguardInterfacesPresent": true,
"scope": "Default create/import/key-export controls on actual data; no operations applied from UI",
"ownWireguardInterfacesRemoved": true,
"ownPortalUserRemoved": true
}
@@ -0,0 +1,18 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"database": "mm_accept_166_1791896427599",
"scope": "ephemeral role and precreated owned database; no copied production credentials",
"tests": [
{
"command": "npm --prefix backend run test:wireguard",
"passed": true,
"durationMs": 14595,
"externalNativeDevices": false,
"originalReportedCommand": "npm --prefix backend run test:traffic-rate",
"labelCorrection": "Runner executed test:wireguard; copied reporting label incorrectly named traffic-rate. Actual profile stdout assertion verified."
}
],
"scopedRoleVerified": true,
"passed": true
}
@@ -0,0 +1,82 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"database": "mm_accept_166_1791895670647",
"baseline": true,
"cases": [
{
"role": "reader",
"flag": "",
"status": 200,
"privateKeyExposed": false,
"nativeRequestCount": 4
},
{
"role": "reader",
"flag": "?includePrivateKey=1",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "reader",
"flag": "?includePrivateKey=true",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "writer",
"flag": "",
"status": 200,
"privateKeyExposed": false,
"nativeRequestCount": 4
},
{
"role": "writer",
"flag": "?includePrivateKey=1",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "writer",
"flag": "?includePrivateKey=true",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "admin",
"flag": "",
"status": 200,
"privateKeyExposed": false,
"nativeRequestCount": 4
},
{
"role": "admin",
"flag": "?includePrivateKey=1",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "admin",
"flag": "?includePrivateKey=true",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"name": "is_admin alone",
"status": 200,
"permissionRequired": true
},
{
"role": "unauthenticated",
"status": 401
}
],
"scope": "Production compiled WireGuard GET/auth/mapper, own restricted PostgreSQL and local RouterOS HTTP fixture with nonempty synthetic private key; isolated signed JWT",
"passed": true
}
@@ -0,0 +1,82 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"database": "mm_accept_166_1791896339709",
"baseline": false,
"cases": [
{
"role": "reader",
"flag": "",
"status": 200,
"privateKeyExposed": false,
"nativeRequestCount": 4
},
{
"role": "reader",
"flag": "?includePrivateKey=1",
"status": 403,
"privateKeyExposed": false,
"nativeRequestCount": 0
},
{
"role": "reader",
"flag": "?includePrivateKey=true",
"status": 403,
"privateKeyExposed": false,
"nativeRequestCount": 0
},
{
"role": "writer",
"flag": "",
"status": 200,
"privateKeyExposed": false,
"nativeRequestCount": 4
},
{
"role": "writer",
"flag": "?includePrivateKey=1",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "writer",
"flag": "?includePrivateKey=true",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "admin",
"flag": "",
"status": 200,
"privateKeyExposed": false,
"nativeRequestCount": 4
},
{
"role": "admin",
"flag": "?includePrivateKey=1",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"role": "admin",
"flag": "?includePrivateKey=true",
"status": 200,
"privateKeyExposed": true,
"nativeRequestCount": 4
},
{
"name": "is_admin alone",
"status": 403,
"permissionRequired": true
},
{
"role": "unauthenticated",
"status": 401
}
],
"scope": "Production compiled WireGuard GET/auth/mapper, own restricted PostgreSQL and local RouterOS HTTP fixture with nonempty synthetic private key; isolated signed JWT",
"passed": true
}
@@ -0,0 +1,42 @@
{
"date": "2026-10-13",
"block": "12.5.208",
"runtimeBackend": "ux-native208",
"actualPortalJWT": true,
"cases": [
{
"host": "194.226.121.150",
"serverId": 1,
"ownedInterfaceCreated": true,
"createStatus": 201,
"readerPublicList": 200,
"readerPrivateFlags": [
403,
403
],
"readerPrivateKeyAbsent": true,
"adminPrivateKeyAvailable": true,
"publicKeyPreserved": true,
"dataPlaneTest": false
},
{
"host": "104.165.244.7",
"serverId": 2,
"ownedInterfaceCreated": true,
"createStatus": 201,
"readerPublicList": 200,
"readerPrivateFlags": [
403,
403
],
"readerPrivateKeyAbsent": true,
"adminPrivateKeyAvailable": true,
"publicKeyPreserved": true,
"dataPlaneTest": false
}
],
"privateMaterialPublished": false,
"cleanupCompleted": true,
"scope": "Own WireGuard interface on each CHR; private/public API policy, not handshake or encrypted data-plane test",
"ownPortalUserRemoved": true
}