forked from baron/baron-sso
- 조직도 렌더링 시 너비 동적 계산 및 스크롤 문제 해결 - 하위 조직(Leaf)을 부모 박스 내부에 임베딩하여 2열로 깔끔하게 표시되도록 조직도 UI 전면 개편 - 사용자 생성/수정 및 CSV 업로드 시 직급(Position)과 직무(JobTitle)가 정상적으로 Kratos 및 로컬 DB에 동기화되도록 백엔드 API 수정 - CSV 조직도 업로드 시 계층 구분을 '/' 대신 ' > '로 변경하여 이름에 '/'가 포함된 부서(예: 평면/셀)가 분리되지 않도록 보호 - 잘못 입력된 과거 직책 데이터(팀장, 그룹장 등)를 'user' 권한으로 일괄 초기화하고, 이후 'role' 필드에 시스템 권한(user, tenant_admin, super_admin) 외의 값이 들어오지 않도록 백엔드 정규화 로직 강화 - 사용자 목록 페이지의 페이지네이션 제한을 50명에서 1000명으로 상향 조정 - 테넌트 목록 페이지에 이름/슬러그 기반 검색 기능 추가 - 관리자 UI 전반에서 불필요한 배지(Admin only, System 등) 제거 및 테넌트 상세 페이지의 미사용 '외부 연동' 탭 삭제
Admin Front (React 19 + Vite)
관리자 포털을 위한 React/Vite 기반 웹입니다. 이슈 #60 스펙을 바탕으로 라우팅, 서버 상태, 스타일 토큰을 세팅했고 특정 벤더에 종속되지 않는 IDP 연동 훅 포인트를 남겨두었습니다.
주요 스택
- React 19, Vite 8, TypeScript(strict)
- React Router v6 (data router)
- TanStack Query v5
- Tailwind CSS v3 + shadcn/ui 컴포넌트(seed: Button/Card/Badge/Input/Table/Avatar)
- Axios 클라이언트 스텁: Bearer +
X-Tenant-ID헤더 주입 준비 - React Hook Form + Zod (추가 예정)
- Biome (formatter/linter)
실행
npm install
npm run dev
구조
src/app: 라우터, QueryClient 등 전역 설정src/components/layout: App 레이아웃/네비게이션src/features: dashboard, clients, audit, auth 등 화면 스캐폴딩src/lib/apiClient.ts: Axios 인스턴스(토큰/테넌트 헤더 주입 스텁)
다음 작업 가이드
- IDP 중립 Auth 레이어 추가 후 관리자 역할 가드/세션 TTL 적용
- 테넌트 선택 UI 추가 →
X-Tenant-ID헤더에 반영 - shadcn/ui 도입 및 폼/테이블 컴포넌트 연결