forked from baron/baron-sso
349cdf5fcd9020b2adf2366437862f94a0a6a86a
- 조직도 렌더링 시 너비 동적 계산 및 스크롤 문제 해결 - 하위 조직(Leaf)을 부모 박스 내부에 임베딩하여 2열로 깔끔하게 표시되도록 조직도 UI 전면 개편 - 사용자 생성/수정 및 CSV 업로드 시 직급(Position)과 직무(JobTitle)가 정상적으로 Kratos 및 로컬 DB에 동기화되도록 백엔드 API 수정 - CSV 조직도 업로드 시 계층 구분을 '/' 대신 ' > '로 변경하여 이름에 '/'가 포함된 부서(예: 평면/셀)가 분리되지 않도록 보호 - 잘못 입력된 과거 직책 데이터(팀장, 그룹장 등)를 'user' 권한으로 일괄 초기화하고, 이후 'role' 필드에 시스템 권한(user, tenant_admin, super_admin) 외의 값이 들어오지 않도록 백엔드 정규화 로직 강화 - 사용자 목록 페이지의 페이지네이션 제한을 50명에서 1000명으로 상향 조정 - 테넌트 목록 페이지에 이름/슬러그 기반 검색 기능 추가 - 관리자 UI 전반에서 불필요한 배지(Admin only, System 등) 제거 및 테넌트 상세 페이지의 미사용 '외부 연동' 탭 삭제
feat(org): enhance bulk import to support multi-level hierarchy, auto-provision users, and map matrix organizations (#500)
Baron SSO
Baron SSO is a white-labeled User Authentication Hub and Unified Launcher. It leverages Descope for secure, passwordless authentication (Enchanted Link / Magic Link) and provides a custom Flutter UI for a seamless user experience. A Go (Fiber) backend manages Audit Logs via ClickHouse.
🏗 Architecture
1. Frontend (Flutter Web)
- Framework: Flutter 3.38.0+
- Organization:
kr.co.baroncs - Key Packages:
descope,flutter_riverpod,go_router - Features:
- Login UI with Tabs (Email / SMS)
- Descope SDK Integration (Enchanted Link, Magic Link)
2. Backend (Go Fiber)
- Language: Go 1.25+
- Framework: Fiber v2.25+
- Database:
- ClickHouse: Audit Logs (High performance ingestion)
- PostgreSQL: Metadata storage (Primary)
- Features:
POST /api/v1/audit: Endpoint to ingest audit logs.
3. Infrastructure (Docker)
- Services:
postgres,clickhouse(defined incompose.infra.yaml) - App:
userfront,backend(defined indocker-compose.yaml)
🚀 Getting Started
Prerequisites
- Docker & Docker Compose
- Flutter SDK (for local development, 3.38.0+)
- Go (for local backend development)
Environment Setup
-
Copy the sample environment file.
cp .env.sample .env -
Set the IDP priority and Ory admin endpoints. The default is Ory first with Descope as fallback.
IDP_PROVIDER=ory,descope KRATOS_ADMIN_URL=http://kratos:4434 HYDRA_ADMIN_URL=http://hydra:4445
Running the Stack
1. Start Infrastructure (Databases)
Start the persistent data layer first.
docker compose -f compose.infra.yaml up -d
2. Start Applications
Start the userfront and backend services.
docker compose up
- userfront: Accessible at http://localhost:5000
- backend: API active at http://localhost:3000
- ClickHouse: http://localhost:8123
Local Development (Manual)
If you prefer running without Docker for code editing:
Backend:
cd backend
go mod tidy
go run cmd/server/main.go
userfront:
cd userfront
flutter pub get
flutter run -d chrome
📂 Project Structure
baron_sso/
├── backend/ # Go Fiber Application
│ ├── cmd/server/ # Entry point
│ ├── internal/ # Domain, Handlers, Repository
│ └── Dockerfile
├── userfront/ # Flutter Application
│ ├── lib/ # UI & Logic
│ └── pubspec.yaml
├── compose.infra.yaml # DB Services (Postgres, ClickHouse)
├── docker-compose.yaml # App Services
├── .env.sample # Env Config Template
└── README.md # This file
📝 Status & Roadmap
- Phase 1: Initial Setup & Architecture (Done)
- Phase 2: Backend Audit API (Done)
- Phase 3: Frontend Login UI & Descope Auth Logic (Done)
- Phase 4: Connect Frontend to Audit API (Todo)
- Phase 5: Dashboard & Unified Launcher (Todo)
Description
바론 소프트웨어 통합 로그인 서비스 코드 저장소.
사내 개발자라면 누구든 자유롭게 코드를 살펴보고 기여할 수 있습니다.
https://sadmin.hmac.kr
http://sdev.hmac.kr
Languages
TypeScript
35.3%
Go
32.1%
JavaScript
17.5%
Dart
10.8%
Shell
3.5%
Other
0.7%