fix(netflow): исключить специальные IPv4 из внешнего обогащения
This commit is contained in:
1 parent
f3156b44cf
commit
b619ef208e
14 files changed
+448
-81
No files matched your search
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"date": "2026-10-11",
|
||||
"runtime": {
|
||||
"backend": "ux-ripe140",
|
||||
"frontend": "ux-log133"
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"path": "/traffic",
|
||||
"width": 320,
|
||||
"httpStatus": 200,
|
||||
"noOverflow": true,
|
||||
"apiResponses": [
|
||||
200,
|
||||
200,
|
||||
400,
|
||||
400,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/statistics",
|
||||
"width": 320,
|
||||
"httpStatus": 200,
|
||||
"noOverflow": true,
|
||||
"apiResponses": [
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200,
|
||||
200
|
||||
]
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"bounds": [
|
||||
"Read-only smoke on empty/current lab catalogs; no full NetFlow pipeline or throughput claim"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,216 @@
|
||||
{
|
||||
"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/"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user