fix(dashboard): show enriched network details
CI / validate (push) Successful in 5m39s
Release / release (push) Successful in 7m15s

This commit is contained in:
dmg
2026-08-02 08:05:57 -04:00
parent aa0b757814
commit 24808b0f8c
12 changed files with 106 additions and 14 deletions
+7 -2
View File
@@ -5,7 +5,7 @@ import Link from "next/link";
import { UserWorldMap, type UserMapLocation } from "@/components/user-world-map";
import { db } from "@/lib/database";
import { fillDailySeries, mergeRiskActivity, type DailyCount } from "@/lib/admin-metrics";
import { parseUserLocation } from "@/lib/user-location-map";
import { parseUserLocation, parseUserNetwork } from "@/lib/user-location-map";
export const dynamic = "force-dynamic";
@@ -43,7 +43,7 @@ export default async function AdminDashboardPage() {
name: users.firstName,
discordUsername: users.discordUsername,
primaryUsername: minecraftAccounts.username,
classification: ipObservations.classification,
classification: ipIntelligence.classification,
source: ipObservations.source,
observedAt: ipObservations.observedAt,
intelligence: ipIntelligence.rawResponse,
@@ -108,6 +108,7 @@ export default async function AdminDashboardPage() {
const locations = locationRows.flatMap((row): UserMapLocation[] => {
const parsed = parseUserLocation(row.intelligence);
if (!parsed || !row.userId) return [];
const network = parseUserNetwork(row.intelligence);
return [{
userId: row.userId,
name: row.name ?? row.discordUsername,
@@ -117,6 +118,10 @@ export default async function AdminDashboardPage() {
longitude: parsed.longitude,
location: parsed.label,
classification: row.classification,
networkProvider: network.provider,
networkAsn: network.asn,
connectionType: network.connectionType,
proxy: network.proxy,
source: row.source,
observedAt: row.observedAt,
}];