커밋 그래프

6 커밋

작성자 SHA1 메시지 날짜
c2a71c1b77 feat(design): 디자인 시스템 적용 (CSS 토큰, Button/Badge, 차트, 다크모드) (#48)
- 디자인 시스템 가이드 문서 11개 생성 (docs/design/)
- CSS 변수 토큰 시스템 (@theme + :root/.dark 전환)
- cn() 유틸리티 (clsx + tailwind-merge)
- Button/Badge 공통 컴포넌트 (variant/size, 다크모드 대응)
- 하드코딩 Tailwind 색상 → CSS 변수 토큰 리팩토링 (30개 파일)
- 차트 팔레트 다크모드 색상 업데이트 (CHART_COLORS_HEX)
- 버튼 다크모드 채도/대비 강화 (primary-600 기반)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 16:38:00 +09:00
a9cdf96481 feat(api): API 관리 상세 화면 구현
- API 명세(Spec) 및 파라미터(Param) CRUD 엔드포인트 추가
- API 관리 상세 편집 페이지(ApiEditPage) 구현
- API 목록 관리 페이지(ApisPage) 구현
- 요청인자/출력결과 편집 + JSON 파싱 기능
- 프론트엔드 타입/서비스 정의 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 13:57:09 +09:00
34f0015cff feat(ui): 서비스 API 분류 + API Key 관리 UI 전면 개선
서비스 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>
2026-04-10 11:03:55 +09:00
d4aa982e1a feat(ui): 피드백 반영 - 다크모드, API Key UX, 레이아웃 개선
공통:
- 다크/라이트 모드 (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>
2026-04-08 16:54:29 +09:00
efa7a7bd07 feat(phase2): 핵심 관리 기능 CRUD + 하트비트 스케줄러
백엔드:
- 테넌트 CRUD API (GET/POST/PUT /api/tenants)
- 사용자 CRUD API (GET/POST/PUT/DELETE /api/users, 역할 기반 접근 제어)
- 서비스 등록/관리 API (GET/POST/PUT /api/services, /api/services/{id}/apis)
- 하트비트 스케줄러 (30초 간격 폴링, WebClient 헬스체크)
- 헬스체크 상태 조회/이력 API (GET/POST /api/heartbeat)
- @EnableMethodSecurity + @PreAuthorize 역할 기반 접근 제어
- WebClientConfig, ErrorCode 7개 추가

프론트엔드:
- 테넌트 관리 페이지 (CRUD 테이블 + 모달)
- 사용자 관리 페이지 (역할 드롭다운, 테넌트 선택)
- 서비스 관리 페이지 (헬스 배지, API 목록 탭)
- API 서비스 모듈 4개 (tenant, user, service, heartbeat)

Closes #7

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 17:04:32 +09:00
48671af3c5 feat(phase1): 기반 구축 - DB Entity, JWT 인증, 프론트엔드 레이아웃
백엔드:
- JPA Entity 9개 + Repository 9개 (common 스키마)
- JWT 인증 (jjwt, Access/Refresh 토큰)
- AuthController (login/logout/refresh)
- 공통 모듈 (BaseEntity, ErrorCode, BusinessException, PageResponse)
- SecurityConfig JWT 필터 체인 통합

프론트엔드:
- MainLayout (사이드바 + 헤더) + AuthLayout
- 로그인 페이지 + ProtectedRoute
- API 클라이언트 (fetch wrapper, JWT 자동 첨부, 401 refresh)
- AuthContext + useAuth 훅
- 9개 플레이스홀더 페이지 + 라우팅

설정:
- DB: snp_connection / snp_admin / common 스키마
- ddl-auto: update (개발), validate (운영)

Closes #6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:52:25 +09:00