Fix: AGENT_VERSION-Fallback-Bug erneut behoben (Downgrade auf v2.0.0)
Beim heutigen Secrets-Cleanup von docker-compose.yml ging AGENT_VERSION
verloren (war nur ad-hoc auf dem Server gesetzt, nie versioniert) — der
Code-Fallback griff dadurch wieder auf hartcodierte Alt-Versionen zurück
('2.0.0'/'1.2.4'/'1.2.3'), wodurch 17 Agents beim Selbst-Update-Versuch
fälschlich auf v2.0.0 downgraded wurden. AGENT_VERSION jetzt fest im
docker-compose.yml-Template verankert, alle Fallback-Stellen im Code auf
eine gemeinsame FALLBACK_AGENT_VERSION-Konstante zusammengeführt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,11 @@ const { getForAgent } = require('./announcement.controller');
|
||||
const { validateAgentKey } = require('../utils/agentAuth');
|
||||
const crypto = require('crypto');
|
||||
|
||||
// Code-seitiger Fallback falls AGENT_VERSION env-Var fehlt — bei jedem Agent-Release mit hochziehen!
|
||||
// (War zuvor an mehreren Stellen hartcodiert auf alte Versionen wie '2.0.0'/'1.2.4' — echter
|
||||
// Downgrade-Bug für Agents ohne Patch-Gruppe oder ohne ?hostname-Parameter.)
|
||||
const FALLBACK_AGENT_VERSION = '2.8.0';
|
||||
|
||||
// POST /api/monitoring/enroll — Agent tauscht geteilten Bootstrap-Key gegen individuellen Per-Device-Key.
|
||||
// Idempotent: ein bereits enrollter Agent bekommt seinen bestehenden Key einfach erneut zurück.
|
||||
const enroll = asyncHandler(async (req, res) => {
|
||||
@@ -123,7 +128,7 @@ const checkin = asyncHandler(async (req, res) => {
|
||||
const { pending, running } = getPendingCommands(agent.id);
|
||||
|
||||
// Zielversion: Gruppen-spezifisch (staged rollout) oder globaler Default
|
||||
const GLOBAL_VERSION = process.env.AGENT_VERSION || '1.2.4';
|
||||
const GLOBAL_VERSION = process.env.AGENT_VERSION || FALLBACK_AGENT_VERSION;
|
||||
let targetVersion = GLOBAL_VERSION;
|
||||
try {
|
||||
const db = getDatabase();
|
||||
@@ -211,7 +216,7 @@ const downloadScript = asyncHandler(async (req, res) => {
|
||||
return res.status(404).json({ status: 'error', message: 'Script nicht gefunden' });
|
||||
}
|
||||
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
|
||||
res.setHeader('X-Agent-Version', process.env.AGENT_VERSION || '1.2.3');
|
||||
res.setHeader('X-Agent-Version', process.env.AGENT_VERSION || FALLBACK_AGENT_VERSION);
|
||||
res.sendFile(scriptPath);
|
||||
});
|
||||
|
||||
@@ -244,7 +249,7 @@ const downloadSetup = asyncHandler(async (req, res) => {
|
||||
const fs = require('fs');
|
||||
|
||||
// Zielversion: Gruppen-spezifisch (staged rollout) oder globaler Default — gleiche Logik wie checkin()
|
||||
let version = process.env.AGENT_VERSION || '2.0.0';
|
||||
let version = process.env.AGENT_VERSION || FALLBACK_AGENT_VERSION;
|
||||
const hostname = req.query.hostname;
|
||||
if (hostname) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user