fix(netflow): исправить классификацию IPv6 и кеш префиксов RIPE

This commit is contained in:
Denozordec committed 2026-10-11 16:21:43 +07:00
1 parent 59938118bd
commit af66faaae4
12 files changed
+493 -23

No files matched your search

@@ -0,0 +1,131 @@
{
"date": "2026-10-11",
"block": "12.5.142",
"runtime": {
"backend": "ux-ipv6142",
"frontend": "ux-traffic141",
"backendHealthy": true
},
"checks": {
"ipAndRipeProfilePassedInCandidate": true,
"changedFilesEslintPassed": true,
"backendProductionBuildPassed": true,
"compiledOutputsMatched": 984,
"isolatedSqlModulesPassed": 6,
"ownTemporaryDatabaseRemoved": true,
"classificationAndGeoipConsumersPassed": true
},
"sql": {
"date": "2026-10-11",
"name": "mm_accept_142_1791710322057",
"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": 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": true,
"output": "statistics-aggregate.test.ts: ok\nISOLATED_SQL_TEST_COMPLETE\n"
}
],
"databaseRemoved": true
},
"liveRipe": {
"date": "2026-10-11",
"runtime": "ux-ipv6142",
"requests": [
{
"path": "/data/network-info/data.json",
"resource": "2001:4860:4860::8888",
"status": 200
},
{
"path": "/data/maxmind-geo-lite/data.json",
"resource": "2001:4860::/32",
"status": 200
},
{
"path": "/data/as-overview/data.json",
"resource": "AS15169",
"status": 200
},
{
"path": "/data/network-info/data.json",
"resource": "2606:4700:4700::1111",
"status": 200
},
{
"path": "/data/maxmind-geo-lite/data.json",
"resource": "2606:4700:4700::/48",
"status": 200
},
{
"path": "/data/as-overview/data.json",
"resource": "AS13335",
"status": 200
}
],
"cases": [
{
"ip": "2001:4860:4860::8888",
"prefix": "2001:4860::/32",
"asn": 15169,
"country": "US",
"lat": 37.09024,
"lng": -95.712891,
"holder": "GOOGLE - Google LLC",
"ok": true,
"fetchedAt": 1791710348415
},
{
"ip": "2606:4700:4700::1111",
"prefix": "2606:4700:4700::/48",
"asn": 13335,
"country": "US",
"lat": 0,
"lng": 0,
"holder": "CLOUDFLARENET - Cloudflare, Inc.",
"ok": true,
"fetchedAt": 1791710348902
}
],
"cacheHitsAndSpecialNoFetch": true,
"success": true
},
"bounds": [
"IANA IPv6 non-global special assignments, deprecated site-local and multicast excluded; more-specific global allocations preserved, Teredo and 6to4 N/A reachability not equated to non-global",
"Fixed prefixes parsed once; validated 128-bit parsing, IPv4-mapped identity normalized consistently",
"IPv6 /48 bucket and wide-prefix indexes support longest fresh match, replacement, invalidation, negative /128 and expanded forms; unrelated3000 /48 prefixes not scanned",
"First local aggregate run stopped on sandbox-limited GeoIP temp files; isolated authorized rerun passed; six local PG skips not counted as passes",
"Candidate SQL run passed all six modules in one own DB, owner-checked removal; no working DB fixture changes",
"First Docker invocation used wrong Dockerfile path and failed before build; corrected backend/Dockerfile build passed",
"Six actual RIPE200 requests for two public IPv6; cached sibling/expanded addresses and special controls produced zero additional requests; persistence disabled in separate service process",
"Public IPv6 metadata verified over backend HTTPS API egress; no IPv6 WAN connectivity, live IPv6 exporter ingestion or maximum throughput claim",
"GeoIP zero coordinates observed from upstream/service need separate validation; full external acceptance remains open"
],
"references": [
"https://www.iana.org/assignments/iana-ipv6-special-registry/"
]
}
@@ -0,0 +1,84 @@
{
"date": "2026-10-11",
"block": "12.5.142",
"runtime": {
"backend": "ux-ipv6142",
"frontend": "ux-traffic141"
},
"checks": {
"readOnlyFrontendUnchanged": true,
"backendHealthy": true,
"backendProductionBuildPassed": true
},
"cases": [
{
"width": 1440,
"httpStatus": 200,
"api": [
{
"path": "/api/traffic/bound-interfaces",
"status": 200
},
{
"path": "/api/traffic/users",
"status": 200
},
{
"path": "/api/traffic/servers",
"status": 200
},
{
"path": "/api/traffic/servers/1/live",
"status": 200
},
{
"path": "/api/traffic/servers/1/interfaces",
"status": 200
},
{
"path": "/api/traffic/servers/1",
"status": 200
}
],
"pageErrors": [],
"noOverflow": true
},
{
"width": 320,
"httpStatus": 200,
"api": [
{
"path": "/api/traffic/bound-interfaces",
"status": 200
},
{
"path": "/api/traffic/users",
"status": 200
},
{
"path": "/api/traffic/servers",
"status": 200
},
{
"path": "/api/traffic/servers/1/live",
"status": 200
},
{
"path": "/api/traffic/servers/1/interfaces",
"status": 200
},
{
"path": "/api/traffic/servers/1",
"status": 200
}
],
"pageErrors": [],
"noOverflow": true
}
],
"bounds": [
"Read-only initial loading with real current lab catalog; no full NetFlow ingestion or throughput claim",
"Catalog failure and pending loading checked by controlled E2E; numeric live server details/interfaces/SSE enabled only after confirmed catalog ownership",
"Interface filter remains selected on range changes; backend source switch invalidates prior catalog ownership"
]
}