release: 2026-04-09.2 워크플로우 연결 + 메뉴 DB SSOT #28
No reviewers
레이블
레이블 없음
마일스톤 없음
담당자 없음
참여자 2명
알림
마감일
마감일이 설정되지 않았습니다.
의존성
No dependencies set.
Reference: gc/kcg-ai-monitoring#28
불러오는 중...
Reference in New Issue
Block a user
No description provided.
Delete Branch "develop"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
release: 2026-04-09.2 — 워크플로우 연결 + 메뉴 DB SSOT
주요 변경
워크플로우 연결 5단계
메뉴 DB SSOT 구조화
기타
51개 파일, +2,776 / -543
- V018 마이그레이션: prediction_events.features JSONB 컬럼 추가 - VesselAnalysis 직접 조회 API 5개 신설 (/api/analysis/*) - vessels 목록 (필터: mmsi, zone, riskLevel, isDark) - vessels/{mmsi} 최신 분석 (features 포함) - vessels/{mmsi}/history 분석 이력 - dark 베셀 목록 (MMSI 중복 제거) - transship 의심 목록 - PredictionEvent entity에 features JSONB 필드 추가 - EnforcementController vesselMmsi 필터 파라미터 추가 - event_generator.py INSERT에 features 컬럼 추가 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>- EventList 인라인 액션 버튼 4종 추가 (확인/선박상세/단속등록/오탐) - 확인(ACK): NEW 상태 이벤트만 활성, ackEvent API 연동 - 선박 상세: /vessel/{mmsi} 네비게이션 - 단속 등록: createEnforcementRecord API → 이벤트 RESOLVED 자동 전환 - 오탐 처리: updateEventStatus(FALSE_POSITIVE) 연동 - MMSI → VesselDetail 링크 3개 화면 적용 - EventList: MMSI 컬럼 클릭 → /vessel/{mmsi} - DarkVesselDetection: MMSI 컬럼 클릭 → /vessel/{mmsi} - EnforcementHistory: 대상 선박 컬럼 클릭 → /vessel/{mmsi} - PredictionEvent 타입에 features 필드 추가 (dark_tier, transship_score 등) - analysisApi.ts 서비스 신규 생성 (직접 조회 API 5개 연동) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>EnforcementHistory: - eventId 역추적 컬럼 추가 (#{eventId} 클릭 → EventList 이동) - Record 인터페이스에 eventId 필드 추가 EnforcementPlan: - 미배정 CRITICAL 이벤트 패널 신설 (NEW 상태 CRITICAL 이벤트 표시) - getEvents(level=CRITICAL, status=NEW) 연동 MainLayout: - admin 메뉴 4개 서브그룹 분리 (AI 플랫폼/시스템 운영/사용자 관리/감사·보안) - NavDivider 타입 도입으로 그룹 내 소제목 라벨 렌더링 - 기존 RBAC 필터링 + collapsed 모드 호환 유지 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>## 핵심 변경 - auth_perm_tree를 메뉴 SSOT로 확장 (V020~V024) - url_path, label_key, component_key, nav_group, nav_sub_group, nav_sort 컬럼 - labels JSONB (다국어: {"ko":"...", "en":"..."}) - 보이지 않는 도메인 그룹 8개 삭제 (surveillance, detection, risk-assessment 등) - 권한 트리 = 메뉴 트리 완전 동기화 - 그룹 레벨 권한 → 개별 자식 권한으로 확장 후 그룹 삭제 - 패널 노드 parent_cd를 실제 소속 페이지로 수정 (어구식별→어구탐지, 전역제외→후보제외, 역할관리→권한관리) - vessel:vessel-detail 권한 노드 제거 (드릴다운 전용, 인증만 체크) ## 백엔드 - MenuConfigService: auth_perm_tree에서 menuConfig DTO 생성 - /api/auth/me 응답에 menuConfig 포함 (로그인 시 프리로드) - @RequirePermission 12곳 수정 (삭제된 그룹명 → 구체적 자식 리소스) - Caffeine 캐시 menuConfig 추가 ## 프론트엔드 - NAV_ENTRIES 하드코딩 제거 → menuStore(Zustand) 동적 렌더링 - PATH_TO_RESOURCE 하드코딩 제거 → DB 기반 longest-match - App.tsx 36개 정적 import/33개 Route → DynamicRoutes + componentRegistry - PermissionsPanel: DB labels JSONB 기반 표시명 + 페이지/패널 아이콘 구분 - DB migration README.md 전면 재작성 (V001~V024, 49테이블, 149인덱스) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>릴리즈 승인 (via /release skill)