0954876295
Implement B01-B06 with regression coverage and retained validation evidence. Preserve the production ingress preflight; F04 runtime verification remains open.
177 lines
3.8 KiB
JSON
177 lines
3.8 KiB
JSON
{
|
|
"date": "2026-09-09",
|
|
"ticket": "B06",
|
|
"status": "Implemented; full local and production verification pending",
|
|
"effectiveCompose": {
|
|
"after": {
|
|
"services": [
|
|
{
|
|
"service": "ai-service",
|
|
"ports": null,
|
|
"networks": [
|
|
"ai_internal"
|
|
]
|
|
},
|
|
{
|
|
"service": "backend",
|
|
"ports": null,
|
|
"networks": [
|
|
"ai_internal",
|
|
"default",
|
|
"shared_services",
|
|
"web_proxy"
|
|
]
|
|
},
|
|
{
|
|
"service": "frontend",
|
|
"ports": [
|
|
{
|
|
"mode": "ingress",
|
|
"target": 80,
|
|
"published": "3000",
|
|
"protocol": "tcp"
|
|
}
|
|
],
|
|
"networks": [
|
|
"shared_services",
|
|
"web_proxy"
|
|
]
|
|
},
|
|
{
|
|
"service": "ollama",
|
|
"ports": null,
|
|
"networks": [
|
|
"ai_internal"
|
|
]
|
|
}
|
|
],
|
|
"frontendMode": "proxy",
|
|
"frontendPeers": "192.0.2.10/32",
|
|
"backendEnvironment": "Production",
|
|
"webProxy": {
|
|
"name": "jobtracker_web_proxy",
|
|
"ipam": {
|
|
"config": [
|
|
{
|
|
"subnet": "172.31.250.0/29"
|
|
}
|
|
]
|
|
},
|
|
"internal": true
|
|
}
|
|
},
|
|
"before": {
|
|
"services": [
|
|
{
|
|
"service": "ai-service",
|
|
"ports": null,
|
|
"networks": [
|
|
"ai_internal"
|
|
]
|
|
},
|
|
{
|
|
"service": "backend",
|
|
"ports": null,
|
|
"networks": [
|
|
"ai_internal",
|
|
"default",
|
|
"shared_services",
|
|
"web_proxy"
|
|
]
|
|
},
|
|
{
|
|
"service": "frontend",
|
|
"ports": [
|
|
{
|
|
"mode": "ingress",
|
|
"target": 80,
|
|
"published": "3000",
|
|
"protocol": "tcp"
|
|
}
|
|
],
|
|
"networks": [
|
|
"shared_services",
|
|
"web_proxy"
|
|
]
|
|
},
|
|
{
|
|
"service": "ollama",
|
|
"ports": null,
|
|
"networks": [
|
|
"ai_internal"
|
|
]
|
|
}
|
|
],
|
|
"frontendMode": null,
|
|
"frontendPeers": null,
|
|
"backendEnvironment": null,
|
|
"webProxy": {
|
|
"name": "jobtracker_web_proxy",
|
|
"ipam": {
|
|
"config": [
|
|
{
|
|
"subnet": "172.31.250.0/29"
|
|
}
|
|
]
|
|
},
|
|
"internal": true
|
|
}
|
|
}
|
|
},
|
|
"inputs": "Explicit synthetic env file; no production env inspected",
|
|
"nginxGeneration": {
|
|
"scope": "Real entrypoint generation/guards; nginx -t replaced because runtime unavailable",
|
|
"cases": [
|
|
{
|
|
"case": "missing peers",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "trust-all IPv4",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "trust-all IPv6",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "broad peer net",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "directive injection",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "direct HTTPS",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "proxy HTTP",
|
|
"exit": 1
|
|
},
|
|
{
|
|
"case": "trusted production",
|
|
"exit": 0
|
|
},
|
|
{
|
|
"case": "direct development",
|
|
"exit": 0
|
|
}
|
|
]
|
|
},
|
|
"topology": {
|
|
"actualTraefikProven": false,
|
|
"reason": "Docker engine pipe absent; Docker Desktop startup crashed on inaccessible dockerInference socket",
|
|
"actualNginxRuntimeProven": false,
|
|
"status": "Blocked before creating resources"
|
|
},
|
|
"production": {
|
|
"tls": "Not inspected",
|
|
"dns": "Not inspected",
|
|
"firewall": "Not inspected",
|
|
"peerAddresses": "Unknown; not guessed",
|
|
"deployed": false
|
|
}
|
|
}
|