Squash of recent dev work: return_session login, backend switcher, line detail timeline, overview strips, node platform/country/ISP info with flags and icons, build info (version, tag, time) behind site.show_build, and the acrylic display theme.
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
namespace Monitor.Backend.Application;
|
|
|
|
/// <summary>
|
|
/// 一个节点(Agent 或 Probe)用来展示的信息:系统和架构、国家、运营商,以及它自己上报的构建信息(版本、tag、提交、构建时间)。
|
|
/// <b>不含任何 IP 地址、城市、ASN 或经纬度</b>——这些只在查询的那一刻用到,不留下,也不对外。
|
|
/// </summary>
|
|
public sealed record NodeInfo(
|
|
string NodeId,
|
|
string Kind,
|
|
string? Os,
|
|
string? OsName,
|
|
string? Arch,
|
|
string? Country,
|
|
string? IspKey,
|
|
string? IspName,
|
|
string? Version = null,
|
|
string? Tag = null,
|
|
string? Commit = null,
|
|
string? BuiltAt = null);
|
|
|
|
/// <summary>
|
|
/// 存起来的完整记录(只给 Backend 内部用):多了一个「查询用的主机」,用来判断地址变了没有、要不要重新查。
|
|
/// 这个字段不会出现在任何对外的接口里。
|
|
/// </summary>
|
|
public sealed record NodeMeta(NodeInfo Info, string? GeoHost, long GeoAtMs, long UpdatedAtMs);
|
|
|
|
public static class NodeKinds
|
|
{
|
|
public const string Agent = "agent";
|
|
public const string Probe = "probe";
|
|
}
|
|
|
|
/// <summary>IP 归属查询的结果(只取需要的几项)。</summary>
|
|
public sealed record GeoInfo(string? Country, int? Asn, string? Organization, bool IsPrivate);
|