Server Folders Agent per JSON
Agent starten
Lege server-folders-agent.json neben die server-folders-agent.exe und starte den Agent ohne weitere Parameter:
.\server-folders-agent.exe
Beispiel:
{
"listenAddr": ":8099",
"storageRoots": [
{
"label": "Storage D",
"path": "D:/Milestone-Speicher"
}
],
"archiveRoots": [
{
"label": "Archive E",
"path": "E:/"
}
],
"token": ""
}
Alternativ kann die Config explizit angegeben werden:
.\server-folders-agent.exe -config "C:\Milestone\server-folders-agent.json"
Oder per ENV:
$env:SERVER_FOLDER_AGENT_CONFIG="C:\Milestone\server-folders-agent.json"
.\server-folders-agent.exe
Token-Handling
Der Agent kann ohne initialen Token gestartet werden. Das Backend erzeugt beim Speichern der Milestone-Einstellungen automatisch einen zufälligen Token und überträgt ihn per PUT /agent-token an den Agent.
Wenn keine tokenFile in der JSON gesetzt ist, schreibt der Agent den aktuellen Token direkt ins Feld token der JSON-Datei. Damit überlebt der Token einen Neustart und alle Einstellungen liegen in einer Datei.
PUT /agent-token
X-Server-Folders-Token: <aktueller-token> # nur nötig, wenn bereits ein Token gesetzt ist
Content-Type: application/json
{ "token": "<neuer-token>" }
Solange noch kein Token gesetzt ist, akzeptiert der Agent PUT /agent-token auch ohne Header. Betreibe den Agent daher in einem vertrauenswürdigen Netzwerk und speichere die Einstellungen nach dem Start zeitnah.
Falls du den Token weiterhin getrennt speichern möchtest, kannst du in der JSON tokenFile setzen:
{
"listenAddr": ":8099",
"storageRoots": [
{
"label": "Storage D",
"path": "D:/Milestone/Storage"
}
],
"tokenFile": "C:/Milestone/server-folders-agent.token"
}
Root-Pfade per API aktualisieren
Das Backend kann die Storage- und Archive-Roots zur Laufzeit an den Agent schicken. Der Agent aktualisiert die laufende Konfiguration und schreibt die Werte in server-folders-agent.json:
PUT /agent-config
X-Server-Folders-Token: <aktueller-token>
Content-Type: application/json
{
"storageRoots": [
{
"label": "Storage D",
"path": "D:/Milestone-Speicher"
}
],
"archiveRoots": [
{
"label": "Archive E",
"path": "E:/"
}
]
}
Kompatibilität
Die bisherigen Parameter und ENV-Variablen funktionieren weiter und überschreiben Werte aus der JSON:
.\server-folders-agent.exe -port 8099 -storage-root "Storage D=D:/Milestone/Storage" -archive-root "Archive E=E:/Milestone/Archive"
Unterstützte ENV-Variablen:
SERVER_FOLDER_AGENT_CONFIGLISTEN_ADDRSERVER_FOLDER_AGENT_PORTSERVER_STORAGE_ROOTSSERVER_ARCHIVE_ROOTSSERVER_FOLDER_ROOTSSERVER_FOLDER_AGENT_TOKENSERVER_FOLDER_AGENT_TOKEN_FILE
Backend-Proxy
Der bestehende Frontend-Endpunkt bleibt:
GET /admin/server-folders?path=D:/Milestone
POST /admin/server-folders
Der Proxy gibt den Token als Header an den Agent weiter:
X-Server-Folders-Token: <token>