From f06009b1528498c48d4364dda9935769a64ca7d4 Mon Sep 17 00:00:00 2001 From: mrhid6 Date: Fri, 17 Jul 2026 11:12:57 +0100 Subject: [PATCH] fix: populate console defaults on register when unset (setOnInsert never fired) --- server/internal/services/servers.go | 34 +++++++++++++++-------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/server/internal/services/servers.go b/server/internal/services/servers.go index c1b62b5..4a5946c 100644 --- a/server/internal/services/servers.go +++ b/server/internal/services/servers.go @@ -122,25 +122,27 @@ func RegisterServer(serverID, preRegToken, hostname, ipAddress, osInfo string) ( osType := OSTypeFromInfo(osInfo) protocols, sshPort, rdpPort := defaultConsoleFields(osType) + setFields := bson.M{ + "hostname": hostname, + "ip_address": ipAddress, + "os_info": osInfo, + "os_type": osType, + "agent_token_hash": tokenHash, + "status": "active", + "last_seen": now, + "pre_reg_token": "", + "pre_reg_expires": nil, + } + if len(s.ConsoleProtocols) == 0 { + setFields["console_protocols"] = protocols + setFields["ssh_port"] = sshPort + setFields["rdp_port"] = rdpPort + } + _, err = db.Col("servers").UpdateOne(ctx, bson.M{"server_id": serverID}, bson.M{ - "$set": bson.M{ - "hostname": hostname, - "ip_address": ipAddress, - "os_info": osInfo, - "os_type": osType, - "agent_token_hash": tokenHash, - "status": "active", - "last_seen": now, - "pre_reg_token": "", - "pre_reg_expires": nil, - }, - "$setOnInsert": bson.M{ - "console_protocols": protocols, - "ssh_port": sshPort, - "rdp_port": rdpPort, - }, + "$set": setFields, }, ) if err != nil {