Commit Graph
100 Commits
Author SHA1 Message Date
chan 003f12f008 test: add mock outbox expectations for super_admin relations in tenant service tests 2026-04-06 13:11:30 +09:00
chan aaa3dc2fb9 fix: use vite preview in staging to support api proxy in frontends 2026-04-06 11:47:33 +09:00
chan 583755c189 fix: improve keto sync reliability and initial rebac permissions for super admin 2026-04-06 10:10:27 +09:00
chan bd296f9425 Merge pull request 'feat/fam-tanent' (#511) from feat/fam-tanent into dev
Reviewed-on: baron/baron-sso#511
2026-04-03 15:20:01 +09:00
chan 95aba376b1 chore: fix workspace formatting (devfront, backend, adminfront) 2026-04-03 15:12:27 +09:00
chan 59d53bc1b2 chore(adminfront): fix Biome formatting issues 2026-04-03 15:03:08 +09:00
chan a65f9afc69 chore(adminfront): fix Biome lint error in user E2E test 2026-04-03 15:00:57 +09:00
chan 94520db699 test(adminfront): fix Playwright E2E tests for user and schema management 2026-04-03 14:48:04 +09:00
chan bae35dd8a5 chore(ci): disable auto-open of playwright html reporter 2026-04-03 11:48:38 +09:00
chan 02a52fdb38 test(adminfront): fix flaky tests caused by missing dynamic loginId field and greedy URL mocks 2026-04-03 11:43:16 +09:00
chan 692670a081 fix(adminfront): fix type errors in UserDetailPage causing build failures in CI 2026-04-03 10:27:26 +09:00
chan 8dacb9ddba perf(ci): use vite build and preview in playwright to speed up E2E tests 2026-04-03 10:09:42 +09:00
chan e200f4a59a chore(i18n): fix untranslated keys and placeholders to pass quality checks 2026-04-03 10:04:58 +09:00
chan f0bf58d336 fix(ci): update Node 24 and playwright workers, fix user detail queries on create 2026-04-03 09:46:26 +09:00
chan 462ae91a9e chore(i18n): fix duplicate sections in TOML files causing parsing errors in tests 2026-04-03 09:43:31 +09:00
chan 993882233b 18n 2026-04-02 18:10:25 +09:00
chan d08df8767d chore(i18n): filter out scanner false-positives and restore toml syntax 2026-04-02 18:09:28 +09:00
chan ec42739764 chore(devfront): fix biome formatting and lints 2026-04-02 17:43:45 +09:00
chan 81d70c87f1 chore(i18n): fix toml nesting syntax for missing translation keys 2026-04-02 17:32:05 +09:00
chan d9019ffdc9 i18 2026-04-02 17:25:11 +09:00
chan 2b49fd92b7 chore(i18n): auto-patch missing translation keys from scanner output 2026-04-02 17:16:24 +09:00
chan 797c6b0b8a chore: fix frontend lints and format issues
- Resolve 'noDelete' by using undefined assignment in TenantSchemaPage
- Resolve React list key warning by using client_id in UserDetailPage
- Run biome formatter across modified components
2026-04-02 16:46:54 +09:00
chan b582c82c6f feat: implement multi-identifier architecture (Issue #496)
- Database: Add user_login_ids table for 1:N identifier mapping and remove legacy login_id column
- Kratos: Update identity schema to use custom_login_ids array instead of a single id trait
- Backend: Implement syncCustomLoginIDs to collect isLoginId fields across tenant schemas
- Backend: Add backtracking logic to auto-assign session tenant based on used login identifier
- Backend: Add 409 Conflict exception handling for Create/Update operations
- AdminFront: Refactor UserDetailPage to a tabbed grid layout (Info, Tenants, Security)
- AdminFront: Show '로그인 ID' badge on tenant schema fields used for authentication
- UserFront: Remove legacy optional 'Login ID' input from signup flow
- Tests: Add multi-identifier repository tests and update handler tests
2026-04-02 16:07:33 +09:00
chan 1f9512a5a7 Merge pull request 'feat/id_login' (#497) from feat/id_login into dev
Reviewed-on: baron/baron-sso#497
2026-04-01 13:59:24 +09:00
chan 37bc1bba22 chore: add missing i18n keys and fix devfront formatting 2026-04-01 13:58:06 +09:00
chan 8a4dc1a320 i18 2026-04-01 13:55:57 +09:00
chan ded1e1f5c4 fix(backend): fix merge conflict artifact and undefined explicitLoginID in UserHandler 2026-04-01 13:45:56 +09:00
chan 634f869a84 Merge branch 'dev' into feat/id_login 2026-04-01 13:40:45 +09:00
chan 6c1da03e91 style(userfront): apply dart format 2026-04-01 13:36:34 +09:00
chan 5bf3ef3222 test(e2e): skip coordinate-based WASM tests on mobile 2026-04-01 13:34:23 +09:00
chan 5502e35dc5 chore(adminfront): fix any types and biome lint errors in adminApi.ts 2026-04-01 13:22:11 +09:00
chan fdffeacf50 fix(backend): fix loginIdField not being synced when companyCode is empty 2026-04-01 13:13:26 +09:00
chan 54a853a5c6 fix(backend): fix syncLoginID to allow fields named 'id' to be synced from custom schema 2026-04-01 13:03:39 +09:00
chan 27a7d226eb fix(backend): map Kratos traits id to loginId in UserSummary API response 2026-04-01 11:29:13 +09:00
chan a5fdeabd09 fix: resolve tenant user assignment bug (#490)
- Fix frontend payload mapping (tenantSlug -> companyCode) in adminApi.ts.
- Fix backend group member fetching to avoid dummy members in UserGroupService.List.
- Fix backend foreign key violation on group creation by distinguishing between tenant parent and group parent in UserGroupService.Create.
2026-04-01 11:19:09 +09:00
chan 6b30580f36 fix(backend): force keto outbox sync on explicit tenant assignment to self-heal missing relations 2026-03-31 17:51:53 +09:00
chan bc73b85909 feat(backend): auto-sync user group keto relation based on department in user update 2026-03-31 13:50:23 +09:00
chan 5029b8049b fix(backend): prevent duplicate key constraint on empty login id when syncing users 2026-03-31 13:11:32 +09:00
chan 2a162f0efe Merge pull request 'temp-branch' (#464) from temp-branch into dev
Reviewed-on: baron/baron-sso#464
2026-03-27 21:40:38 +09:00
chan dcc5708d17 린트 적용용 2026-03-27 21:37:40 +09:00
chan 809ece6a68 chore: ignore playwright artifacts in biome and fix minor devfront imports 2026-03-27 21:27:03 +09:00
chan 2e14c9d6fe test(backend): update expected error message for invalid company code to match korean translation 2026-03-27 21:18:51 +09:00
chan 543607069e fix(userfront): correctly display general signup errors in a dialog instead of password field 2026-03-27 20:59:00 +09:00
chan 13469b14fb fix: refine error messages for signup failure and company code 2026-03-27 20:39:49 +09:00
chan 603b9e0032 fix(backend): resolve signup issues by fixing tenant slug case-sensitivity and exposing Kratos errors 2026-03-27 20:03:50 +09:00
chan 987b4797bb style(userfront): add missing curly braces for flow control structures 2026-03-27 19:21:33 +09:00
chan 8f78dbf68c test(adminfront): add E2E tests for login ID validation and conflict handling 2026-03-27 19:06:51 +09:00
chan b3f33cfa30 Merge pull request 'temp-branch' (#461) from temp-branch into dev
Reviewed-on: baron/baron-sso#461
2026-03-27 19:02:42 +09:00
chan aa8dc05311 chore(i18n): fix sync errors by adding missing keys to ko and en locales 2026-03-27 18:48:19 +09:00
chan 17168bceae Merge branch 'dev' into temp-branch 2026-03-27 18:42:59 +09:00
chan a75ae1de9a format error 수정 2026-03-27 18:41:49 +09:00
chan f8d10c90b8 style(userfront): apply dart format 2026-03-27 18:10:32 +09:00
chan 6192220ec1 fix(adminfront): fix Biome lint errors by removing explicit any types 2026-03-27 18:02:53 +09:00
chan 5ae0e19e31 style: apply backend go fmt and frontend biome auto-fixes 2026-03-27 17:57:03 +09:00
chan 2383c6a6be Merge commit '6a50dc280f9c7e71fe09481ee76c4c9c6d5fe710' into temp-branch 2026-03-27 17:41:59 +09:00
chan ffba1563a7 chore: add missing i18n keys to satisfy i18n-scanner 2026-03-27 17:41:22 +09:00
chan 6a50dc280f chore: add missing i18n keys to satisfy i18n-scanner 2026-03-27 17:38:52 +09:00
chan 641e4aba0d fix(adminfront): fix auth redirection in tests and add custom field validation
- Skip auth redirect to `/login` when `_IS_TEST_MODE` is true to prevent test timeouts.
- Update `UserSchemaField` type and `TenantMetadataFields` to support regex validation patterns.
- Fix translation key for tenant profile metadata section title.
- Enhance OIDC mock data and mock endpoints in `users_schema.spec.ts`.
- Remove unreliable `waitForLoadState("networkidle")` to speed up test execution.
2026-03-27 17:30:30 +09:00
chan 75cc6737bd feat: add robust login ID collision prevention and UI validation (#440)
- Add `ValidateLoginID` to enforce ID collision and security rules (prevents phone number collision, email format usage, and reserved words).
- Add `POST /api/v1/auth/signup/check-login-id` endpoint for real-time ID availability checks.
- Add `checkLoginIDAvailability` API call to userfront's `AuthProxyService`.
- Implement "Check Duplication" button and error/success messaging for the Login ID field in the signup screen.
- Add "000000" magic code bypass for `VerifySignupCode` in non-production environments to streamline testing.
2026-03-27 11:19:28 +09:00
chan aa60a22d57 feat: restore explicit loginId field and add to userfront signup flow
- Revert the removal of loginId from adminfront and backend.
- Prevent phone normalization logic from mangling custom employee ID login fields.
- Add an explicit 'loginId' optional input field to the userfront signup UI.
- Update AuthProxyService.signup and backend AuthHandler.Signup to transmit and map the 'loginId' parameter properly.
2026-03-26 14:22:43 +09:00
chan 85b2049a61 fix(backend): improve LoginID synchronization from custom metadata fields
- Centralize LoginID sync logic in syncLoginID helper
- Support namespaced metadata in CreateUser, UpdateUser, and BulkCreateUsers
- Ensure UpdateUser and UpdateMe always sync LoginID from configured field even if not in update request
- Add phone number normalization consistency for custom LoginIDs
- Add unit tests for namespaced metadata LoginID sync
2026-03-26 12:46:33 +09:00
chan 6337d975ea fix: Admin UI에서 전송한 커스텀 필드(metadata)가 백엔드 Kratos 트레이츠에 빈 배열로 깨져서 저장되는 문제 해결 (#440) 2026-03-25 17:43:30 +09:00
chan dc4a5921c6 chore: 정상 동작이지만 노이즈를 유발하는 Kratos 세션 체크 실패(401) 로그 메시지 수정 2026-03-25 17:29:10 +09:00
chan 5d81027b34 fix: UpdateMe 핸들러 내 계층형 메타데이터 처리 및 로그인 ID 동기화 로직 보강 2026-03-25 17:14:40 +09:00
chan b3f0548c10 fix: 불필요한 역할 오버라이딩(Overriding real profile role) 로그 제거 2026-03-25 17:11:47 +09:00
chan ab9cbfc897 fix: 권한이나 소속이 변경되지 않았을 때 Keto 권한 릴레이션이 불필요하게 삭제 후 재생성되는 버그 수정 2026-03-25 17:01:55 +09:00
chan aad4ea84a1 fix: 내 정보(UpdateMe) 수정 시 커스텀 필드 로그인 ID 동기화 및 Metadata 필드 추가 (#440) 2026-03-25 16:28:19 +09:00
chan 6a4c37603d fix: Admin UI 커스텀 필드 로그인 ID 반영 문제 및 비밀번호 초기화 동작 개선 (#440)
- 사용자 정보 수정(UpdateUser) 시 메타데이터(커스텀 필드)를 명시적 loginId 값보다 우선하여 동기화하도록 로직 순서 변경
- Admin UI 사용자 상세의 비밀번호 초기화 기능이 즉시 폼에 덮어씌워지는 문제 해결을 위해, 별도의 확인 절차 후 즉각 독립적인 API 호출을 통해 재설정되도록 개선
2026-03-25 16:26:01 +09:00
chan d83646a7ef fix: 소유자 및 관리자 추가 시 중복 등록 방지 로직 추가 (#440) 2026-03-25 16:05:39 +09:00
chan c244917737 fix: adminfront utils.ts 내 generateSecurePassword 함수 추가 2026-03-25 15:46:11 +09:00
chan 7c21e500d6 fix: CreateUser 핸들러 내 누락된 LoginID 필드 추가 및 오타 수정 2026-03-25 15:34:29 +09:00
chan d10f80d41d feat: 커스텀 필드 기반 로그인 ID 연동 기능 추가 (#440)
- Kratos Identity 스키마에 로그인 전용 `id` 속성 추가
- 테넌트 Config의 `loginIdField` 설정에 따라 User의 `login_id` 및 Kratos `traits.id` 동기화 로직 구현
- Admin UI 테넌트 스키마 설정 내 '로그인 ID로 사용' 체크박스 추가
- Admin UI 사용자 생성/수정/조회 화면에 로그인 ID 관리 필드 및 컬럼 반영
- Userfront 로그인 화면 접속 시 테넌트 설정에 따라 동적 로그인 ID 라벨 적용
- 관련 다국어(ko/en) 번역 추가 및 로그인 ID 설계 문서 업데이트
2026-03-25 15:27:44 +09:00
chan 6fbf1a17b8 Merge pull request 'feature/af-ui' (#449) from feature/af-ui into dev
Reviewed-on: baron/baron-sso#449
2026-03-24 17:18:05 +09:00
chan d97feffebb Merge branch 'dev' into feature/af-ui 2026-03-24 17:15:03 +09:00
chan ab999c1e16 i18n 검증 완료 2026-03-24 17:12:24 +09:00
chan 79b7abd67b Merge branch 'dev' into feature/af-ui 2026-03-24 16:48:56 +09:00
chan 1d37bf5420 test code제외 2026-03-24 16:40:28 +09:00
chan ddef0f7f05 레거시 수정 2026-03-24 16:37:47 +09:00
chan a669d57e4a test code i18n x 2026-03-24 16:37:01 +09:00
chan 311e491683 누락된 키 추가: 테넌트 수정 화면에 새롭게 추가한 '상위 테넌트' 관련 UI 키 2종을 로컬 설정 파일에 반영했습니다 2026-03-24 16:33:01 +09:00
chan a4f283e4e6 #445 #430 #426 #427 2026-03-24 14:22:05 +09:00
chan b0e18cc724 refactor(adminfront): rename legacy companyCode to tenantSlug across frontend (#426) 2026-03-23 16:59:05 +09:00
chan b2f96b216d fix(adminfront): remove any type casting for react-router v7 flags (#427) 2026-03-23 16:32:50 +09:00
chan d608bdb5a8 refactor(adminfront): replace sonner with custom use-toast matching devfront UX policy 2026-03-23 15:32:32 +09:00
chan 2de22869c0 Merge pull request 'adminfront ui 개편' (#415) from feature/af-ui into dev
Reviewed-on: baron/baron-sso#415
2026-03-23 09:07:04 +09:00
chan d0e4f8f86a adminfront ui 개편 2026-03-20 10:58:52 +09:00
chan 409cb09143 Merge pull request 'feature/af-issue380' (#406) from feature/af-issue380 into dev
Reviewed-on: baron/baron-sso#406
2026-03-19 17:19:45 +09:00
chan a70e637bca fix: consolidate duplicated sections in i18n toml files to prevent userfront layout break 2026-03-19 17:14:28 +09:00
chan 067f9f9baf test: increase playwright poll timeout for password login failure and reset tests 2026-03-19 14:52:40 +09:00
chan a6536364ec i18n add 2026-03-19 14:43:51 +09:00
chan 896a51df3d feat: add schema check on bulk user move and support for float/datetime in custom metadata 2026-03-19 14:02:56 +09:00
chan 3e335eb9cf feat: add schema tab access control and user password generator 2026-03-19 13:40:50 +09:00
chan 046acd3ca6 style: fix table header stickiness and improve visibility for all list pages 2026-03-19 13:30:16 +09:00
chan aff21f195b style: make page headers sticky and improve table header contrast/visibility 2026-03-19 13:23:02 +09:00
chan 926c26b1ad feat: apply sticky header and inner scroll to audit logs page 2026-03-19 13:15:50 +09:00
chan f072d37362 feat: apply sticky header and inner scroll pattern to all table pages 2026-03-19 13:13:27 +09:00
chan 83991b13ca feat: implement sticky header and inner scrolling for user list page 2026-03-19 12:57:00 +09:00
chan 4d11d3e554 feat: disable remove button for self and last admin/owner in UI 2026-03-19 11:21:03 +09:00
chan a6c552236f feat: prevent self-removal and last admin/owner removal in tenant handler 2026-03-19 11:12:42 +09:00
chan 4b42249609 Merge pull request 'fix: remove shared VITE_OIDC_CLIENT_ID from staging .env so adminfront uses correct client ID' (#400) from fix/login into dev
Reviewed-on: baron/baron-sso#400
2026-03-19 09:59:49 +09:00