- 대시보드 레이아웃 개선 (히어로 배너, 도메인 카드 이미지, 인기/최신 API)
- 인기 API: 최근 1주일 기준 Top 3 (PopularApiResponse 백엔드 추가)
- 도메인 상세 페이지 (ApiHubDomainPage) 구현 + 리스트 뷰/검색
- 사이드바 도메인 클릭 시 도메인 상세 페이지 이동
- 브레드크럼: 서비스 제거, 도메인 기반으로 변경
- NoResourceFoundException 404 처리 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- API HUB 상세 화면에 API 사용 신청 모달 추가
- 모달 내 도메인 기반 체크박스 트리로 API 선택
- KeyRequestPage API 선택: 서비스 기반 → 도메인 기반 변경
- API 행에서 Path/Method 제거, API명만 표시
- 도메인 정렬순서 카탈로그(sortOrder) 기준으로 통일
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SnpApiDomain 엔티티/레포/컨트롤러 (CRUD /api/domains)
- Admin 도메인 관리 페이지 (DomainsPage) - SVG 아이콘 미리보기
- API HUB 사이드바: 서비스 기반 3단 → 도메인 기반 2단 플랫 메뉴
- DB 아이콘/정렬순서 반영 (viewBox 24x24, 다중 path 지원)
- 카탈로그 DomainGroup에 iconPath/sortOrder 추가
- API 관리 도메인 입력을 셀렉트박스로 변경
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- API Key 인증: X-API-KEY 헤더 → authKey 쿼리 파라미터 변경
- 일일 요청량 제한 기능 (daily_request_limit, HTTP 429)
- 인증/권한 거부 로그 상태 DENIED 분리 (기존 FAIL에서 분리)
- 에러 응답에 code 필드 추가 (ApiResponse, GatewayController)
- API Key 생성/검토 시 dailyRequestLimit 설정 지원
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 요청 URL 생성 영역 아코디언 형태로 변경
- 샘플 URL 영역 추가 (기본 정보 하단)
- 출력결과 2열 레이아웃 (변수명|의미(단위)) 추가
- 공통 샘플 코드 연동
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SnpSystemConfig 엔티티/레포/서비스/컨트롤러 구현
- GET/PUT /api/config/{configKey} 엔드포인트
- 공통 샘플 코드 관리 admin 페이지 (SampleCodePage)
- 프론트엔드 configService 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- API 명세(Spec) 및 파라미터(Param) CRUD 엔드포인트 추가
- API 관리 상세 편집 페이지(ApiEditPage) 구현
- API 목록 관리 페이지(ApisPage) 구현
- 요청인자/출력결과 편집 + JSON 파싱 기능
- 프론트엔드 타입/서비스 정의 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- API Hub 대시보드 (배너, 인기 API, 최신 API, 서비스 카드)
- 서비스 트리 사이드바 레이아웃 (서비스 > 도메인 > API)
- 서비스별 API 목록 페이지 (도메인별 그룹)
- API 상세 명세 페이지
- 백엔드 카탈로그/최신 API 조회 엔드포인트
- 메인 사이드바에 API Hub 링크 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- JWT 인증 및 LoginPage 제거, SecurityConfig permitAll 전환
- @PreAuthorize 어노테이션 전체 제거 (@EnableMethodSecurity 비활성화)
- ADMIN/MANAGER/USER 역할 토글 버튼 (헤더) + localStorage 연동
- X-User-Id 헤더 기반 사용자 식별 (ApiKeyController, ApiKeyRequestController)
- RoleGuard 컴포넌트로 관리자 전용 페이지 접근 제어
- WebViewController 루트 리다이렉트 수정 (이중 context-path 방지)
closes#35
서비스 API:
- snp_service_api에 apiDomain/apiSection 컬럼 추가
- API 신청 시 서비스 > 도메인 계층형 아코디언+테이블 선택
- 검토 모달 API 권한 편집 가능 (체크박스 토글, API 추가 모달)
API Key 관리:
- KPI 카드 4개 (대기/활성/만료임박/폐기)
- 필터 칩 (상태별) + 검색 + 15건 페이징
- 신청 관리: 사용자 아이콘, 필드 라벨 한글화, 목적 제거
- 키 관리: 소유자(userName) 필드 추가, 필드 순서 변경, maskedKey/생성일 제거
- 검토 모달: 탭(신청정보/API권한), EditableDateCard, 승인확인 변경테이블
- 상세 모달: 검토 모달 readOnly 재사용, 상태별 아이콘 헤더
- 키 상세: 상태별 색상, InfoRow, API Key 보기/숨기기+복사
Closes#31
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
통계 메뉴 (5개 서브페이지):
- 서비스 통계 (요약카드+에러율비교+응답시간분포+시간별추이)
- 사용자 통계 (전체/API Key보유/API요청 사용자+역할분포+Top10)
- API 통계 (호출순위+에러순위+메서드분포+상태코드분포)
- 테넌트 통계 (요약카드+일별추이+API Key현황)
- 사용량 추이 (일별/주별/월별 탭, 요청수+성공률+응답시간+활성사용자)
대시보드 피드백:
- 요약카드 전일대비 소숫점 2자리
- 하트비트 카드형 (프로그레스바 제거, flex 균등분할)
- 테넌트 차트 제거
- 상위 API URL 쿼리파라미터 정규화 (SPLIT_PART)
- Gateway request_url 저장 시 쿼리스트링 제외
- "활성 사용자" → "API 요청 사용자" 라벨 변경
서비스 통계: 요약카드 flex 유동너비, 에러율+응답시간 차트 교체
사용자 통계: API Key 보유 사용자 카드 추가, flex 균등분할
API 통계: 타이틀 변경, 쿼리파라미터 제외 쿼리, 프로그레스바 분리
테넌트 통계: flex 균등분할, 빈 테넌트명 Unknown 처리
Closes#23
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
공통:
- 다크/라이트 모드 (ThemeContext, Tailwind dark variant, 전체 페이지 적용)
- 사이드바 아이콘 링크체인 (#FF2E63), 헤더/사이드바 높이 통일
- 컨텐츠 영역 max-w-7xl 마진 통일 (대시보드 제외)
- 전체 Actions 버튼 bg-color-100 스타일 통일
- date input 달력 아이콘 다크모드 (filter invert)
API Keys:
- Request: 영구 사용 옵션 추가, 프리셋/영구 버튼 다크모드
- My Keys: ADMIN 직접 생성 제거 → Request 페이지 정식 폼으로 통일
- Admin: 키 관리 만료일 컬럼 추가, 권한 편집 제거 (승인 단계에서만 가능)
Gateway:
- API 경로 {변수} 패턴 매칭 지원
Closes#15
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>