Files
MikrotikManager/docs/ux-ui/acceptance/flow-special-ipv4-2026-10-11.json
T

217 lines
8.7 KiB
JSON

{
"date": "2026-10-11",
"block": "12.5.140",
"runtime": {
"backend": "ux-ripe140",
"frontend": "ux-log133",
"backendHealthy": true,
"postgresHealthy": true,
"frontendRunning": true
},
"checks": {
"localTrafficFlowSeriesExit": 0,
"localPostgresSkipped": true,
"localRipeTestPassed": true,
"ipv4BoundaryTestsPassed": true,
"eslintChangedFilesPassed": true,
"backendProductionBuildPassed": true,
"isolatedSqlUniqueModulesPassed": [
"traffic-flow-ingest",
"traffic-flow-analytics",
"traffic-flow-map-hops",
"traffic-flow-purge",
"traffic-flow-facts-rebuild",
"statistics-aggregate"
],
"temporaryDatabasesRemoved": 4,
"compiledBackendOutputsMatched": 984,
"compiledMissing": 0,
"compiledDifferent": 0
},
"hashes": {
"ipServiceSource": "b164a6e50e61d235855c0888e3f178162fbb46affbef5cc534189401d7d14865",
"compiledIpService": "583b1ec8ee3f05d2a0a4e72ccd358cc3ecffd006aa4332dbdc72f63903dbbfd6",
"sourceAndRuntimeMatched": true
},
"sqlAttempts": [
{
"date": "2026-10-11",
"name": "mm_accept_140_1791697211345",
"tests": [
{
"module": "traffic-flow-ingest",
"passed": true,
"output": "traffic-flow-ingest.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
},
{
"module": "traffic-flow-analytics",
"passed": false,
"error": "Command failed: /usr/local/bin/node /app/backend/acceptance/pg140-runner.mjs /app/backend/acceptance/pg140-tests/traffic-flow-analytics.mjs\nSQLite → PostgreSQL: файл /tmp/mm_accept_140_1791697211345/empty.db не найден, база после wipe остаётся пустой (defaults settings)\ninsert or update on table \"flow_daily_dims_m_202609\" violates foreign key constraint \"flow_daily_dims_server_id_fkey\"\n",
"output": "",
"stderr": "SQLite → PostgreSQL: файл /tmp/mm_accept_140_1791697211345/empty.db не найден, база после wipe остаётся пустой (defaults settings)\ninsert or update on table \"flow_daily_dims_m_202609\" violates foreign key constraint \"flow_daily_dims_server_id_fkey\"\n"
}
],
"databaseRemoved": true
},
{
"date": "2026-10-11",
"name": "mm_accept_140_1791697661858",
"tests": [
{
"module": "traffic-flow-ingest",
"passed": true,
"output": "traffic-flow-ingest.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
},
{
"module": "traffic-flow-analytics",
"passed": true,
"output": "traffic-flow-analytics.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
},
{
"module": "traffic-flow-map-hops",
"passed": false,
"error": "Command failed: /usr/local/bin/node /app/backend/acceptance/pg140-runner.mjs /app/backend/acceptance/pg140-tests/traffic-flow-map-hops.mjs\nSQLite → PostgreSQL: файл /tmp/mm_accept_140_1791697661858/empty.db не найден, база после wipe остаётся пустой (defaults settings)\nтоп-8 брендов на карте\n\n2 !== 8\n\n",
"output": "traffic-flow-map-hops.test.ts: pickMapServices ok\ntraffic-flow-map-hops.test.ts: hops ok\n",
"stderr": "SQLite → PostgreSQL: файл /tmp/mm_accept_140_1791697661858/empty.db не найден, база после wipe остаётся пустой (defaults settings)\nтоп-8 брендов на карте\n\n2 !== 8\n\n"
}
],
"databaseRemoved": true
},
{
"date": "2026-10-11",
"name": "mm_accept_140_1791697879954",
"tests": [
{
"module": "traffic-flow-map-hops",
"passed": true,
"output": "traffic-flow-map-hops.test.ts: pickMapServices ok\ntraffic-flow-map-hops.test.ts: hops ok\ntraffic-flow-map-hops.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
},
{
"module": "traffic-flow-purge",
"passed": true,
"output": "traffic-flow-purge.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
},
{
"module": "traffic-flow-facts-rebuild",
"passed": true,
"output": "traffic-flow-facts-rebuild.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
},
{
"module": "statistics-aggregate",
"passed": false,
"error": "Command failed: /usr/local/bin/node /app/backend/acceptance/pg140-runner.mjs /app/backend/acceptance/pg140-tests/statistics-aggregate.mjs\nSQLite → PostgreSQL: файл /tmp/mm_accept_140_1791697879954/empty.db не найден, база после wipe остаётся пустой (defaults settings)\nno partition of relation \"server_snapshots\" found for row\n",
"output": "",
"stderr": "SQLite → PostgreSQL: файл /tmp/mm_accept_140_1791697879954/empty.db не найден, база после wipe остаётся пустой (defaults settings)\nno partition of relation \"server_snapshots\" found for row\n"
}
],
"databaseRemoved": true
},
{
"date": "2026-10-11",
"name": "mm_accept_140_1791698055809",
"tests": [
{
"module": "statistics-aggregate",
"passed": true,
"output": "statistics-aggregate.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
}
],
"databaseRemoved": true
}
],
"liveRipe": {
"date": "2026-10-11",
"runtime": "ux-ripe140",
"requests": [
{
"path": "/data/network-info/data.json",
"resource": "104.165.244.7",
"status": 200
},
{
"path": "/data/network-info/data.json",
"resource": "194.226.121.150",
"status": 200
},
{
"path": "/data/maxmind-geo-lite/data.json",
"resource": "194.226.121.0/24",
"status": 200
},
{
"path": "/data/maxmind-geo-lite/data.json",
"resource": "104.165.244.0/24",
"status": 200
},
{
"path": "/data/as-overview/data.json",
"resource": "AS41745",
"status": 200
},
{
"path": "/data/as-overview/data.json",
"resource": "AS41745",
"status": 200
}
],
"cases": [
{
"ip": "194.226.121.150",
"prefix": "194.226.121.0/24",
"asn": 41745,
"country": "RU",
"lat": 55.7487,
"lng": 37.6187,
"holder": "FORTIS-AS Baykov Ilya Sergeevich",
"ok": true,
"fetchedAt": 1791697689859
},
{
"ip": "104.165.244.7",
"prefix": "104.165.244.0/24",
"asn": 41745,
"country": "PL",
"lat": 52.2299,
"lng": 21.0093,
"holder": "FORTIS-AS Baykov Ilya Sergeevich",
"ok": true,
"fetchedAt": 1791697689949
}
],
"cacheHitsNoFetch": true,
"success": true
},
"browserSmoke": {
"protocol": "browser-flow-special-ip-2026-10-11.json",
"pageRenderingAndNoOverflowPassed": true,
"apiFailures": [
{
"path": "/api/traffic/servers/srv1",
"status": 400,
"error": "id is required"
},
{
"path": "/api/traffic/servers/srv1/interfaces",
"status": 400,
"error": "id is required"
}
],
"nextFix": "Gate live traffic fetches until confirmed numeric server id/catalog"
},
"bounds": [
"IPv4 eligible-public predicate updated using IANA non-global special ranges; PCP/TURN192.0.0.9/10 remain eligible; global reachability not guaranteed by eligibility",
"Fixed ranges parsed once for hot flow paths; no IPFIX tuple/NAT/network config/DB schema change",
"Stale seeded public metadata for special IPv4 bypassed; special IPv4/private/cache-hit enqueue produces no RIPE requests",
"Initial SQL failures retained: hardcoded server7/missing FK fixture; documentation IPs used as public service fixtures; missing historical snapshot partition",
"Test fixtures fixed without weakening data/assertions: owned server+scoped cleanup, eligible synthetic public IPs, partition for fixed test date",
"Six unique DB modules accepted across bounded runs, not six fresh successes in one run; local skips not counted as passes",
"Own temporary databases created/dropped with owner/prefix checks; child current_database checked before tests; working DB/legacy SQLite untouched",
"All984 production outputs match candidate and actual deployed IP service hash; no frontend rebuild because frontend source unchanged",
"Read-only UI smoke has no page errors/overflow but two existing initial mock-id400 requests; not a fully green API loading acceptance",
"IPv6 special registry handling and the traffic initial live-id gate remain separate work"
],
"references": [
"https://www.iana.org/assignments/iana-ipv4-special-registry/"
]
}