fix(ipsec): подтвердить достоверность операций и приёмку раздела
This commit is contained in:
1 parent
e2d81f9657
commit
f80d9b7637
28 files changed
+969
-170
No files matched your search
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"runtime": "ipsec77",
|
||||
"httpMocks": false,
|
||||
"cases": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"width": 1280,
|
||||
"ready": true,
|
||||
"serverAndTabUrlPreserved": true,
|
||||
"peerPropertiesOnly": true,
|
||||
"clientFormFits": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"width": 320,
|
||||
"ready": true,
|
||||
"serverAndTabUrlPreserved": true,
|
||||
"peerPropertiesOnly": true,
|
||||
"clientFormFits": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"width": 1280,
|
||||
"ready": true,
|
||||
"serverAndTabUrlPreserved": true,
|
||||
"peerPropertiesOnly": true,
|
||||
"clientFormFits": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"width": 320,
|
||||
"ready": true,
|
||||
"serverAndTabUrlPreserved": true,
|
||||
"peerPropertiesOnly": true,
|
||||
"clientFormFits": true,
|
||||
"noPageOverflow": true
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"scope": "Real catalog, readiness, peer/client forms and URL reload; writes independently exercised through production HTTP/native checks"
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"backendSource": "ipsec77",
|
||||
"frontendSource": "ipsec77",
|
||||
"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
|
||||
},
|
||||
{
|
||||
"path": "/vxlan",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/ipsec",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"badApiResponses": []
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"version": "1.0.0-test.ipsec77",
|
||||
"source": {
|
||||
"baseHead": "e2d81f9",
|
||||
"workingFileOverrides": 14,
|
||||
"archiveSha256": "e0a034a855eb2d07696a1849c9baed738890e7c84108d5a3d6dbe652188bee9e",
|
||||
"revisionLabel": "ipsec77"
|
||||
},
|
||||
"images": {
|
||||
"backend": "sha256:a4a730666c4690d5147e92f6afcb7bb5ef35132a4a1b92d291738477b9aada443",
|
||||
"frontend": "sha256:452b015751c5c26bc5492cdade76149140ef9e776cbad6927a151c6eead8f028"
|
||||
},
|
||||
"productionBuildsPassed": true,
|
||||
"services": {
|
||||
"running": 3,
|
||||
"backend": "healthy",
|
||||
"postgres": "healthy",
|
||||
"frontend": "no healthcheck; HTTP/browser passed"
|
||||
},
|
||||
"backup": {
|
||||
"bytes": 2510309,
|
||||
"mode": "0600",
|
||||
"pgRestoreListPassed": true,
|
||||
"privateEnvPreserved": true
|
||||
},
|
||||
"databaseAfter": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9
|
||||
},
|
||||
"previousVxlanImagesRetained": true,
|
||||
"retainedMetadata": {
|
||||
"serverId": 2,
|
||||
"name": "flash",
|
||||
"reason": "Automatic review rejected deletion without demonstrated ownership"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,372 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"runtime": "ipsec77",
|
||||
"realRouterOs": true,
|
||||
"name": "mm-ipsec-1791524379334",
|
||||
"apiOperations": [
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=17",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/peers/:id",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/server/17",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=18",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/peers/:id",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/server/18",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=17",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/server/init",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 409
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/server/init",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 409
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 404
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/ipsec/users",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/peers/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/peers/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/peers/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/peers/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=1",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=1",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=2",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=2",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=1",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/server/1",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/ipsec?serverId=2",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/users/:id",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/ipsec/server/2",
|
||||
"status": 200
|
||||
}
|
||||
],
|
||||
"cleanup": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"/ip/ipsec/identity": true,
|
||||
"/ip/ipsec/peer": true,
|
||||
"/ip/ipsec/policy": true,
|
||||
"/ip/ipsec/profile": true,
|
||||
"/ip/ipsec/proposal": true,
|
||||
"/ip/ipsec/mode-config": true,
|
||||
"/ip/pool": true,
|
||||
"/ip/firewall/nat": true,
|
||||
"/certificate": true,
|
||||
"/interface/gre": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ip/firewall/filter": true,
|
||||
"/ip/firewall/mangle": true,
|
||||
"/file": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"/ip/ipsec/identity": true,
|
||||
"/ip/ipsec/peer": true,
|
||||
"/ip/ipsec/policy": true,
|
||||
"/ip/ipsec/profile": true,
|
||||
"/ip/ipsec/proposal": true,
|
||||
"/ip/ipsec/mode-config": true,
|
||||
"/ip/pool": true,
|
||||
"/ip/firewall/nat": true,
|
||||
"/certificate": true,
|
||||
"/interface/gre": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ip/firewall/filter": true,
|
||||
"/ip/firewall/mangle": true,
|
||||
"/file": true
|
||||
}
|
||||
],
|
||||
"disabledChecks": [
|
||||
{
|
||||
"type": "home-router",
|
||||
"readFailure": "disabled",
|
||||
"mutationsStatus": 404,
|
||||
"noNativeRequests": true
|
||||
},
|
||||
{
|
||||
"type": "exit-node",
|
||||
"readFailure": "disabled",
|
||||
"mutationsStatus": 404,
|
||||
"noNativeRequests": true
|
||||
}
|
||||
],
|
||||
"disabledNativeProbeCalls": 0,
|
||||
"realReadFailure": {
|
||||
"status": 401,
|
||||
"noFalseEmptySummary": true,
|
||||
"partialSuccessfulServers": 2,
|
||||
"probeCalls": 16
|
||||
},
|
||||
"fakeRecordsRemoved": true,
|
||||
"init": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"initialized": true,
|
||||
"identityAuth": "digital-signature",
|
||||
"certificateRole": "server"
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"initialized": true,
|
||||
"identityAuth": "digital-signature",
|
||||
"certificateRole": "server"
|
||||
}
|
||||
],
|
||||
"clientChecks": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"pskCreateToggleDuplicate": true,
|
||||
"invalidIp400": true,
|
||||
"missingPeer404": true,
|
||||
"certificateIssued": true,
|
||||
"pkcs12Validated": true,
|
||||
"secretInPublicReport": false
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"pskCreateToggleDuplicate": true,
|
||||
"invalidIp400": true,
|
||||
"missingPeer404": true,
|
||||
"certificateIssued": true,
|
||||
"pkcs12Validated": true,
|
||||
"secretInPublicReport": false
|
||||
}
|
||||
],
|
||||
"encryptedPings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"received": 3,
|
||||
"policyState": "established",
|
||||
"installedSaCount": 2,
|
||||
"nonzeroSaBytes": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"received": 3,
|
||||
"policyState": "established",
|
||||
"installedSaCount": 2,
|
||||
"nonzeroSaBytes": true
|
||||
}
|
||||
],
|
||||
"importedCertificateNamesUnique": true,
|
||||
"certificatePings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"received": 3,
|
||||
"policyState": "established",
|
||||
"digitalSignatureConfigured": true,
|
||||
"exportedClientCertificateUsed": true,
|
||||
"nonzeroSaBytes": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"received": 3,
|
||||
"policyState": "established",
|
||||
"digitalSignatureConfigured": true,
|
||||
"exportedClientCertificateUsed": true,
|
||||
"nonzeroSaBytes": true
|
||||
}
|
||||
],
|
||||
"activePeerEvidence": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"active": []
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"active": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
[
|
||||
{
|
||||
"path": "backend/package.json",
|
||||
"sha256": "a257772b6dfa4a5789e8052050cfe108b6f17abcab60652b2d103e338352ce9e"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/routes/ipsec.ts",
|
||||
"sha256": "0f659b83e1a6659fce430674c012b4b802d84c305e0c7cb2121e542e27ec5c05"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/entity-snapshots.ts",
|
||||
"sha256": "3bfc9ec79b766bba78822f8cd0cb52c6a0f9275cce103230a8461fb4568d02c6"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-ca.ts",
|
||||
"sha256": "62d6dc31e825e72b5bb97fdbca148ed4a961b83f40c2fd26dae2ad02ca6e2499"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-config.test.ts",
|
||||
"sha256": "2b440b45d0e34badcbbb47805652c068edea1cf510e4800c8c2f34f9ac573c3f"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-config.ts",
|
||||
"sha256": "0211752033b34d9ab2b78ff7c211caac8a7785e68ecd32b155ed997eccb66c1d"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-live.ts",
|
||||
"sha256": "870c56d23ef7444588a9a95ea023426308da220675a86d426b86732ae2f4dd5c"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-ros.ts",
|
||||
"sha256": "f52dd291f916d20578614789825134882ce1669605225879459f6f92b0c1872b"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-cleanup.ts",
|
||||
"sha256": "08ffa7ad0ca1c9315720d80f1281279da0ccd4264c33abce9dda49df35050624"
|
||||
},
|
||||
{
|
||||
"path": "backend/src/services/ipsec-state.test.ts",
|
||||
"sha256": "bc81e603e94d947596fb2c8a1cd23ab06efdd0a2b2a4ffaee607b1a36b512385"
|
||||
},
|
||||
{
|
||||
"path": "app/(main)/ipsec/page.tsx",
|
||||
"sha256": "d1edad870a79161313c9718b2c448953dfa7a4e0e1ee7de4e5e478c8800fd558"
|
||||
},
|
||||
{
|
||||
"path": "components/ipsec/ipsec-peer-sheet.tsx",
|
||||
"sha256": "3cd72d864dc6fd34077f279e82fc3a1ee4e437e8c42b993957120f60a1419324"
|
||||
},
|
||||
{
|
||||
"path": "tests/e2e/ipsec-links.spec.ts",
|
||||
"sha256": "86909015ed7746047e5cb0d64f53d238fede520144dfb97fe2f537188964318f"
|
||||
},
|
||||
{
|
||||
"path": "tests/e2e/ipsec-layout.spec.ts",
|
||||
"sha256": "7c4fac163b0a26e175d60d63809724d4857f3672d05b1328049bf8a21ca4dc99"
|
||||
}
|
||||
]
|
||||
Reference in new issue
Block a user