V034 detection_models / detection_model_versions 에 대한 CRUD 경량 API.
MVP 8 엔드포인트로 Phase 2 PoC 5 모델을 DRAFT→ACTIVE 승격 가능한 최소 범위.
엔드포인트 (/api/ai/detection-models):
- GET / — 카탈로그 목록
- GET /{modelId} — 단건
- GET /{modelId}/dependencies — DAG 선행
- GET /{modelId}/versions — 버전 목록
- GET /{modelId}/versions/{versionId} — 버전 상세
- POST /{modelId}/versions — DRAFT 생성 [@Auditable]
- POST /.../{versionId}/activate — DRAFT→ACTIVE(role) [@Auditable]
- POST /.../{versionId}/archive — ACTIVE/DRAFT→ARCHIVED [@Auditable]
구성 요소 (gc.mda.kcg.domain.ai):
- DetectionModel / DetectionModelVersion 엔티티
· JSONB params 는 Hibernate @JdbcTypeCode(SqlTypes.JSON) + JsonNode
- DetectionModelRepository / DetectionModelVersionRepository
- DetectionModelService (READ only)
- DetectionModelVersionService (전이 화이트리스트 + uk_detection_model_primary 409)
- 4 DTO record (Response 2, Request 3)
권한: ai-operations:detection-models (V034 에서 이미 seed)
· READ (전체), CREATE (POST /versions), UPDATE (activate/archive)
· ADMIN 5 ops / OPERATOR READ+UPDATE / ANALYST·VIEWER READ
검증:
- mvn -q compile 성공 (warning 만, error 없음)
- mvn spring-boot:run 로컬 기동 성공 (포트 8081)
- admin 계정 쿠키 인증으로 8 엔드포인트 전수 smoke test:
· GET /api/ai/detection-models → 5 모델 (dark/risk/gear/pair/transship) 반환
· GET /{modelId} 단건 + /dependencies (0 rows) 정상
· POST /versions (1.0.1-test DRAFT) → activate SHADOW → archive 전이 사이클
후속 PR:
- promote-primary (SHADOW/CHALLENGER→PRIMARY, 기존 PRIMARY 자동 archive)
- enable 토글, metrics / compare / runs 조회
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| architecture.md | ||
| prediction-analysis.md | ||
| RELEASE-NOTES.md | ||
| sfr-traceability.md | ||
| sfr-user-guide.md | ||
| system-flow-guide.md | ||
| 중국어선_허가현황_20260106.xls | ||