























11// Gateway control-plane audit helpers.
22// Extracts stable actor identity and compact changed-path summaries for audit logs.
3+import { normalizeControlPlaneIdentityPart } from "./control-plane-identity.js";
34import type { GatewayClient } from "./server-methods/types.js";
4556/** Stable actor fields included in control-plane audit and rate-limit logs. */
@@ -10,21 +11,13 @@ export type ControlPlaneActor = {
1011connId: string;
1112};
121313-function normalizePart(value: unknown, fallback: string): string {
14-if (typeof value !== "string") {
15-return fallback;
16-}
17-const normalized = value.trim();
18-return normalized.length > 0 ? normalized : fallback;
19-}
20-2114/** Extracts audit identity from a possibly missing or partially connected client. */
2215export function resolveControlPlaneActor(client: GatewayClient | null): ControlPlaneActor {
2316return {
24-actor: normalizePart(client?.connect?.client?.id, "unknown-actor"),
25-deviceId: normalizePart(client?.connect?.device?.id, "unknown-device"),
26-clientIp: normalizePart(client?.clientIp, "unknown-ip"),
27-connId: normalizePart(client?.connId, "unknown-conn"),
17+actor: normalizeControlPlaneIdentityPart(client?.connect?.client?.id, "unknown-actor"),
18+deviceId: normalizeControlPlaneIdentityPart(client?.connect?.device?.id, "unknown-device"),
19+clientIp: normalizeControlPlaneIdentityPart(client?.clientIp, "unknown-ip"),
20+connId: normalizeControlPlaneIdentityPart(client?.connId, "unknown-conn"),
2821};
2922}
3023此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。