Add industrial config sync separate from collection tasks.

Periodic vendor-aware CLI sync stores zlib snapshots in Postgres with dashboard, retry, and config viewer under Network Management.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-07-31 10:25:36 +08:00
parent 2fc47e5135
commit 0eead0e662
23 changed files with 2993 additions and 9 deletions

View file

@ -49,8 +49,10 @@ const en = {
devices: "Device list",
topology: "Topology",
alarms: "Alarms",
configs: "Configurations",
webcrt: "WebCRT",
configSync: "Collection tasks",
collectTasks: "Collection tasks",
configSync: "Config sync",
portTraffic: "Port traffic",
},
placeholder: {
@ -64,6 +66,71 @@ const en = {
portTrafficStep4: "UI: task list + per-port trend charts",
},
},
configSync: {
title: "Config sync",
syncNow: "Sync now",
retryFailed: "Retry failed",
pause: "Pause",
resume: "Resume",
started: "Sync cycle started",
paused: "Paused",
resumed: "Resumed",
policyTitle: "Sync policy",
policySaved: "Policy saved",
enabled: "Enable scheduled sync",
intervalDays: "Interval (days)",
concurrency: "Concurrency",
historyKeep: "History keep",
scope: "Scope",
scopeAll: "All NEs",
scopeSelected: "Selected NEs",
savePolicy: "Save policy",
selectedCount: "{{count}} selected",
targetKeywordPh: "Name / IP / vendor",
cyclesTitle: "Sync cycles",
cyclesEmpty: "No sync cycles yet",
tasksTitle: "Cycle tasks",
taskKeywordPh: "Name / IP / message",
allStatus: "All statuses",
expand: "Expand",
collapse: "Collapse",
kpi: {
snapshots: "Snapshots",
running: "In progress",
idle: "Idle",
last: "Last cycle",
nextDue: "Next due",
},
col: {
source: "Source",
name: "Device",
vendor: "Vendor",
trigger: "Trigger",
status: "Status",
progress: "Progress",
started: "Started",
ended: "Ended",
message: "Message",
},
},
networkConfigs: {
title: "Configurations",
keywordPh: "Name / IP / ID",
vendorPh: "Vendor",
allSource: "All sources",
empty: "No synced configs yet. Run Config sync first.",
view: "View",
close: "Close",
tabSet: "Set format",
tabHier: "Hierarchical",
col: {
name: "Device",
vendor: "Vendor",
source: "Source",
size: "Size",
collected: "Collected",
},
},
layout: {
title: "UME Integration",
titleUme: "UME Sync",