296 lines
9.2 KiB
JSON
296 lines
9.2 KiB
JSON
{
|
|
"date": "2026-10-10",
|
|
"block": "12.5.115",
|
|
"deployment": {
|
|
"date": "2026-10-10",
|
|
"baseCommit": "58f5c48",
|
|
"frontendBaseContext": "build-alias112-front",
|
|
"frontendContext": "build-keepcert115-front",
|
|
"override": "app/(main)/ipsec/page.tsx",
|
|
"sourceSha256": "9e2fb7457410a837e0d9f2b0cbdb4201a0874b039f0a2f0202cc68bab6ebfd5c",
|
|
"containers": {
|
|
"backend": {
|
|
"imageTag": "mmapp-test/backend:ux-refs114",
|
|
"imageId": "sha256:df345a34f4e178b8a15fe5c537173f33a79eb15681a5e62b76a4aa7dab0017a6",
|
|
"state": "running",
|
|
"health": "healthy"
|
|
},
|
|
"frontend": {
|
|
"imageTag": "mmapp-test/frontend:ux-keepcert115",
|
|
"imageId": "sha256:98cd215a1c944f0883b0676d58a2df93ac689f488343b70b8360594848df81cf",
|
|
"state": "running",
|
|
"health": null
|
|
},
|
|
"postgres": {
|
|
"imageTag": "postgres:18-alpine",
|
|
"imageId": "sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873",
|
|
"state": "running",
|
|
"health": "healthy"
|
|
}
|
|
}
|
|
},
|
|
"sourceByteHashMatches": true,
|
|
"native": {
|
|
"date": "2026-10-10",
|
|
"block": "12.5.115",
|
|
"name": "mm-ipsec115-1791641218646",
|
|
"cn": "mm-ipsec115-1791641218646",
|
|
"observations": [
|
|
{
|
|
"serverId": 1,
|
|
"active": [
|
|
{
|
|
".id": "*1",
|
|
"id": "CN=mm-ipsec115-1791641218646",
|
|
"state": "established",
|
|
"dynamic-address": "198.18.115.250",
|
|
"remote-address": "104.165.244.7",
|
|
"uptime": "1s"
|
|
}
|
|
],
|
|
"catalog": [
|
|
{
|
|
"name": "CN=mm-ipsec115-1791641218646",
|
|
"commonName": "CN=mm-ipsec115-1791641218646",
|
|
"certName": "ipsec-user-mm-ipsec115-1791641218646-decoy",
|
|
"online": false
|
|
},
|
|
{
|
|
"name": "mm-ipsec115-1791641218646",
|
|
"commonName": "mm-ipsec115-1791641218646",
|
|
"certName": "ipsec-user-mm-ipsec115-1791641218646",
|
|
"online": true,
|
|
"activeAddress": "198.18.115.250"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"serverId": 2,
|
|
"active": [
|
|
{
|
|
".id": "*1",
|
|
"id": "194.226.121.150",
|
|
"state": "established",
|
|
"remote-address": "194.226.121.150",
|
|
"uptime": "1s"
|
|
}
|
|
],
|
|
"catalog": []
|
|
}
|
|
],
|
|
"cleanup": [
|
|
{
|
|
"serverId": 1,
|
|
"/system/logging": true,
|
|
"/ip/ipsec/identity": true,
|
|
"/ip/ipsec/peer": true,
|
|
"/ip/ipsec/policy": true,
|
|
"/ip/ipsec/policy/group": true,
|
|
"/ip/ipsec/mode-config": true,
|
|
"/ip/ipsec/proposal": true,
|
|
"/ip/ipsec/profile": true,
|
|
"/certificate": true,
|
|
"/file": true,
|
|
"/ip/address": true,
|
|
"/ip/route": true,
|
|
"/ip/firewall/nat": true
|
|
},
|
|
{
|
|
"serverId": 2,
|
|
"/system/logging": true,
|
|
"/ip/ipsec/identity": true,
|
|
"/ip/ipsec/peer": true,
|
|
"/ip/ipsec/policy": true,
|
|
"/ip/ipsec/policy/group": true,
|
|
"/ip/ipsec/mode-config": true,
|
|
"/ip/ipsec/proposal": true,
|
|
"/ip/ipsec/profile": true,
|
|
"/certificate": true,
|
|
"/file": true,
|
|
"/ip/address": true,
|
|
"/ip/route": true,
|
|
"/ip/firewall/nat": true
|
|
}
|
|
],
|
|
"databaseWrites": "Two successful API mutations invoke history recording; deduplication may avoid new rows",
|
|
"certificate": {
|
|
"name": "ipsec-user-mm-ipsec115-1791641218646",
|
|
"common-name": "mm-ipsec115-1791641218646",
|
|
"ca": "mm-ipsec115-1791641218646-ca",
|
|
"key-usage": "digital-signature,key-encipherment,tls-client"
|
|
},
|
|
"certificates": [
|
|
[
|
|
{
|
|
"name": "mm-ipsec115-1791641218646-ca",
|
|
"trusted": "true",
|
|
"trust-store": "all",
|
|
"invalid-before": "2026-10-10 17:06:59",
|
|
"invalid-after": "2026-10-12 17:06:59",
|
|
"common-name": "mm-ipsec115-1791641218646-CA"
|
|
},
|
|
{
|
|
"name": "mm-ipsec115-1791641218646-server",
|
|
"trusted": "false",
|
|
"trust-store": "all",
|
|
"ca": "mm-ipsec115-1791641218646-ca",
|
|
"invalid-before": "2026-10-10 17:07:00",
|
|
"invalid-after": "2026-10-12 17:07:00",
|
|
"common-name": "194.226.121.150"
|
|
},
|
|
{
|
|
"name": "ipsec-user-mm-ipsec115-1791641218646",
|
|
"trusted": "false",
|
|
"trust-store": "all",
|
|
"ca": "mm-ipsec115-1791641218646-ca",
|
|
"invalid-before": "2026-10-10 17:07:01",
|
|
"invalid-after": "2026-10-12 17:07:01",
|
|
"common-name": "mm-ipsec115-1791641218646"
|
|
},
|
|
{
|
|
"name": "ipsec-user-mm-ipsec115-1791641218646-decoy",
|
|
"trusted": "false",
|
|
"trust-store": "all",
|
|
"ca": "mm-ipsec115-1791641218646-ca",
|
|
"invalid-before": "2026-10-10 17:07:01",
|
|
"invalid-after": "2026-10-12 17:07:01",
|
|
"common-name": "CN=mm-ipsec115-1791641218646"
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"name": "mm-ipsec115-1791641218646-client-imported",
|
|
"trusted": "true",
|
|
"trust-store": "ipsec",
|
|
"invalid-before": "2026-10-10 16:07:01",
|
|
"invalid-after": "2026-10-12 16:07:01",
|
|
"common-name": "mm-ipsec115-1791641218646"
|
|
},
|
|
{
|
|
"name": "mm-ipsec115-1791641218646-ca-imported",
|
|
"trusted": "true",
|
|
"trust-store": "ipsec",
|
|
"invalid-before": "2026-10-10 16:06:59",
|
|
"invalid-after": "2026-10-12 16:06:59",
|
|
"common-name": "mm-ipsec115-1791641218646-CA"
|
|
}
|
|
]
|
|
],
|
|
"catalogCorrect": true,
|
|
"dnPhase": {
|
|
"active": [
|
|
{
|
|
".id": "*1",
|
|
"id": "CN=mm-ipsec115-1791641218646",
|
|
"state": "established",
|
|
"dynamic-address": "198.18.115.250",
|
|
"remote-address": "104.165.244.7",
|
|
"uptime": "1s"
|
|
}
|
|
],
|
|
"clients": [
|
|
{
|
|
"name": "CN=mm-ipsec115-1791641218646",
|
|
"commonName": "CN=mm-ipsec115-1791641218646",
|
|
"certName": "ipsec-user-mm-ipsec115-1791641218646-decoy",
|
|
"online": false
|
|
},
|
|
{
|
|
"name": "mm-ipsec115-1791641218646",
|
|
"commonName": "mm-ipsec115-1791641218646",
|
|
"certName": "ipsec-user-mm-ipsec115-1791641218646",
|
|
"online": true,
|
|
"activeAddress": "198.18.115.250"
|
|
}
|
|
],
|
|
"decoyOnline": false
|
|
},
|
|
"fqdnPhase": {
|
|
"configuredRemoteId": "fqdn:mm-ipsec115-1791641218646.example",
|
|
"nativeId": "mm-ipsec115-1791641218646.example",
|
|
"assignedAddress": "198.18.115.250",
|
|
"originalOnline": true,
|
|
"decoyOnline": false
|
|
},
|
|
"aliasName": "mm-ipsec115-1791641218646-extra",
|
|
"aliasPhase": {
|
|
"native": [
|
|
{
|
|
"id": "mm-ipsec115-1791641218646.example",
|
|
"state": "established",
|
|
"dynamic-address": "198.18.115.250"
|
|
}
|
|
],
|
|
"clients": [
|
|
{
|
|
"name": "CN=mm-ipsec115-1791641218646",
|
|
"kind": "cert",
|
|
"online": false
|
|
},
|
|
{
|
|
"name": "mm-ipsec115-1791641218646",
|
|
"kind": "cert",
|
|
"online": false,
|
|
"sessionAmbiguous": true
|
|
},
|
|
{
|
|
"name": "mm-ipsec115-1791641218646-extra",
|
|
"kind": "cert",
|
|
"online": false,
|
|
"sessionAmbiguous": true
|
|
}
|
|
],
|
|
"summary": {
|
|
"clientsTotal": 3,
|
|
"clientsOnline": 0,
|
|
"clientsSessionAmbiguous": 2
|
|
}
|
|
},
|
|
"renameReply": {
|
|
"error": "RouterOS: RouterOS API error 400 on /ip/ipsec/identity/*B: {\"detail\":\"failure: a matching identity already exists\",\"error\":400,\"message\":\"Bad Request\"}"
|
|
},
|
|
"targetGuards": {
|
|
"certificatePatch409": true,
|
|
"certificateDelete409": true,
|
|
"sharedCertificateIdentityDelete409": true,
|
|
"selectedIdentityPatchNativeMatchingConflict": true,
|
|
"bothCommentsUnchanged": true
|
|
},
|
|
"uiDelete": {
|
|
"selectedIdentityAbsent": true,
|
|
"sharedCertificateNativeIdPreserved": true,
|
|
"otherIdentityPreserved": true
|
|
},
|
|
"recovered": {
|
|
"originalOnline": true,
|
|
"sessionAmbiguous": false,
|
|
"activeAddress": "198.18.115.250",
|
|
"selectedIdentityPatch200AfterRemovingDuplicate": true,
|
|
"originalCommentRestored": true
|
|
}
|
|
},
|
|
"browserEvidence": "browser-ipsec-keepcert-2026-10-10.json",
|
|
"local": {
|
|
"eslintPassed": true,
|
|
"sourceTypeScriptPassed": true,
|
|
"productionBuildPassed": true,
|
|
"uniqueE2eAccepted": 26,
|
|
"firstRun": {
|
|
"passed": 22,
|
|
"failed": 4,
|
|
"reason": "Modal hides background buttons from accessibility tree; use includeHidden to check retained DOM rows"
|
|
},
|
|
"correctedRerun": {
|
|
"passed": 4,
|
|
"seconds": 9.8
|
|
}
|
|
},
|
|
"bounds": [
|
|
"Backend remains refs114; only frontend rebuilt",
|
|
"One real mobile UI DELETE with removeCertificate=false; four dialogs, not four deletes",
|
|
"Foreign mode-config retained by API guard and removed only by owned fixture cleanup",
|
|
"History recording invoked by DELETE and subsequent PATCH; inserted revision count not claimed",
|
|
"No full regression or new encryption/data-plane acceptance"
|
|
]
|
|
}
|