feat(edge): 디지털 트윈용 장비 메타(IP/Protocol) IDC TimescaleDB 적재 + 송신 페이로드 보강
Build and Push Images / build-and-push (push) Has been cancelled

- edgeDeviceConfigReporter 신규: pipeline_device_connections + pipeline_equipment 조인해
  IDC TimescaleDB의 edge_device_config_1 에 5분 주기로 적재 (DISTINCT ON 으로 최신값 조회용)
- app.ts: 부팅 시 startEdgeDeviceConfigReporter, SIGTERM/SIGINT 시 graceful stop 추가
- CollectedData 에 host/port 필드 추가, collectDevice 에서 device row 값 채움
- centralMqttForwarder.buildPayload 에 protocol/host/port 포함 (IDC 컨슈머가 활용)
- 312 마이그레이션(fleet_edge_raw_data host/port 컬럼) 등록 (sql 파일은 .gitignore 로 미동봉, OPS 절차로 적용)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chpark
2026-05-07 15:38:38 +09:00
parent 080cfe9585
commit 77d35220b1
6 changed files with 246 additions and 0 deletions
+15
View File
@@ -384,6 +384,21 @@ export async function runEdgeDeviceIdentifierMigration() {
}
}
export async function runFleetEdgeRawDeviceEndpointMigration() {
try {
const sqlFilePath = path.join(
__dirname,
"../../db/migrations/312_add_device_endpoint_to_fleet_edge_raw_data.sql"
);
if (!fs.existsSync(sqlFilePath)) return;
const sqlContent = fs.readFileSync(sqlFilePath, "utf8");
await PostgreSQLService.query(sqlContent);
console.log("✅ fleet_edge_raw_data host/port 컬럼 추가 완료");
} catch (error) {
console.error("❌ fleet_edge_raw_data host/port 마이그레이션 실패:", error);
}
}
export async function runOpenClawMigration() {
try {
console.log("🔄 OpenClaw AI 에이전트 마이그레이션 시작...");