Commit Graph
100 Commits
Author SHA1 Message Date
chan 9072bbc42d Merge pull request 'feature/issue-609-multi-tenant-oidc-claims' (#625) from feature/issue-609-multi-tenant-oidc-claims into dev
Reviewed-on: baron/baron-sso#625
2026-04-24 12:59:27 +09:00
chan f810427b21 chore(auth): restrict OIDC generated claims debug logs to dev environment
- Prevent overly verbose logging of ID token payloads in production by checking APP_ENV
2026-04-24 12:00:00 +09:00
chan 8e28a9d74b fix(infra): resolve CORS error and Nginx 502 Bad Gateway
- Update Hydra and Kratos CORS config to specify allowed origins explicitly instead of using wildcard with allow_credentials: true
- Fix Nginx upstream resolution for Oathkeeper to use correct container hostname (ory_oathkeeper)
2026-04-24 11:59:49 +09:00
chan cfba44cec2 feat: support dynamic multi-tenant OIDC claims injection (#609)
- Inject  claim based on OIDC Client metadata
- Extract namespaced tenant metadata from traits and flatten it to root
- Expose all joined tenants metadata under  and  arrays
- Fix missing AuditLog generation during auto-accepted Consent
- Associate correct  during auth events AuditLog recording
- Add unit and integration tests for dynamic claims
2026-04-23 17:59:21 +09:00
chan 991577258b Merge pull request 'fix: 회원가입 페이지 UI 텍스트 포맷팅 노출 오류 수정 (Issue #610)' (#618) from fix-test-fixtures into dev
Reviewed-on: baron/baron-sso#618
2026-04-23 10:43:13 +09:00
chan 7ab79a8bc3 fix: 회원가입 페이지 UI 텍스트 포맷팅 노출 오류 수정 (Issue #610)
- Dart에서 인식하지 못하는 TOML 파싱용 정규식([[:space:]]) 수정
- 이스케이프된 개행 문자(\\n)를 실제 개행 문자로 치환하는 로직 추가
2026-04-22 10:58:30 +09:00
chan b05700f7cc Merge pull request 'fix-test-fixtures' (#606) from fix-test-fixtures into dev
Reviewed-on: baron/baron-sso#606
2026-04-22 09:36:47 +09:00
chan 750776f0a0 style(userfront): format flutter files to satisfy CI 2026-04-21 18:06:57 +09:00
chan 797e6cc90a fix(devfront): add explicit button type and improve test stability 2026-04-21 18:05:32 +09:00
chan a1d516cd61 test: fix TestPasswordLogin_OIDC_Success to expect sessionJwt in OIDC flow 2026-04-21 17:18:45 +09:00
chan 7f955e2122 style: fix formatting issues caught by biome in adminfront 2026-04-21 17:11:08 +09:00
chan 4427ab1f85 fix: resolve admin session infinite reload loop and sync auth state
- Prevent infinite redirection loop by clearing oidc-client user state on 401 errors.
- Sync apiClient request interceptor to use userManager.getUser() for reliable token retrieval.
- Add extensive console logs for better session issue diagnosis.
- Fix TS error in LoginPage by updating button variant.
- Revert 'ae03fe1' (updated playwright fixtures to real domain) as requested.
2026-04-21 17:06:03 +09:00
chan ae03fe1475 chore: update playwright fixtures to use real SSO domain
Since the OIDC authority was updated to https://sso.hmac.kr/oidc, the Playwright mocks and localStorage seed values must match exactly for tests to pass in the new configuration.
2026-04-21 15:02:53 +09:00
chan e7156450ba fix: restore missing POST /users route in admin API
Details:
- The route `admin.Post("/users")` was accidentally merged into a comment line for `admin.Get("/users/export")`. This caused the 405 Method Not Allowed error when trying to create users.
- Restored the route on its own line.
2026-04-21 14:40:09 +09:00
chan 0f79b7635b fix: resolve OIDC session state issue and synchronize portal sessions
Details:
- Backend: Extract Kratos session cookies and propagate via SetCookies in AuthInfo.
- Backend: Include sessionJwt and token during OIDC flows in PasswordLogin.
- UserFront: Add _silentSessionRecovery in main.dart to recover session via cookies if localStorage token is missing.
- UserFront: Update AuthProxyService, AuthTokenStore, AuthNotifier to support silent recovery and immediate local state update before redirect.
- AdminFront/DevFront: Fix OIDC authority to point directly to Gateway proxy and add recovery/error UI components.
2026-04-21 14:10:27 +09:00
chan 6b93cc945a Merge pull request 'add/deploy' (#584) from add/deploy into dev
Reviewed-on: baron/baron-sso#584
2026-04-20 10:07:06 +09:00
chan 55be717ff6 fix(adminfront): resolve biome noNonNullAssertion lint in TenantSchemaPage 2026-04-20 10:00:46 +09:00
chan de2c684096 fix: follow rules of hooks in TenantSchemaPage 2026-04-20 09:56:49 +09:00
chan b757a137c3 fix: follow rules of hooks in TenantSchemaPage 2026-04-20 09:32:32 +09:00
chan a9a448e7fb test: update translation text for organization members locator 2026-04-17 18:01:07 +09:00
chan 582591e532 style: apply biome formatting to e2e tests 2026-04-17 17:42:41 +09:00
chan ad5a49b62f test: update adminfront e2e tests for new organization UI 2026-04-17 17:39:28 +09:00
chan 9f3506c530 fix(adminfront): resolve biome accessibility and typing lints 2026-04-17 16:49:23 +09:00
chan acab84c358 refactor(adminfront): 조직도 UX 전면 개편 및 중복 렌더링 버그 수정
- 1안(좌우 분할 디렉토리 뷰) 적용으로 트리와 상세 패널 분리
- 조직도 중복 나열 버그 원인인 불필요한 groupNodes 강제 병합 로직 제거
- 멤버 탭과 하위 조직 탭을 통합한 세로 스크롤 뷰 구현
- 다국어 키 {count} 처리 문제 우회용으로 텍스트 직접 렌더링 수정
- 우측 설정 메뉴에 상세 프로필로 이동 링크 추가 및 쓸모없는 상세 페이지 라우팅 제거
- '기존 사용자 배정'만 남기고 사용자 '신규 생성' 제거
- DropdownMenu 컴포넌트 추가 및 관련 UI 업데이트
2026-04-17 16:32:22 +09:00
chan b72d04f184 Merge pull request 'add/deploy' (#580) from add/deploy into dev
Reviewed-on: baron/baron-sso#580
2026-04-17 13:06:29 +09:00
chan c15c55744b https://baron-orgchart.hmac.kr/auth/callback 2026-04-17 12:00:00 +09:00
chan 54f7bb1b84 ORGFRONT_CALLBACK_URLS add 2026-04-17 11:37:42 +09:00
chan 4766ef4729 Merge pull request 'VITE_ORGCHART_URL=${{ vars.VITE_ORGCHART_URL }} add' (#578) from add/deploy into dev
Reviewed-on: baron/baron-sso#578
2026-04-17 11:28:53 +09:00
chan 7fbb4095fc VITE_ORGCHART_URL=${{ vars.VITE_ORGCHART_URL }} add 2026-04-17 11:28:08 +09:00
chan 627b9b7a54 Merge pull request 'VITE_ORGCHART_URL' (#577) from add/deploy into dev
Reviewed-on: baron/baron-sso#577
2026-04-17 11:16:23 +09:00
chan 4ef6f96b14 VITE_ORGCHART_URL 2026-04-17 11:13:19 +09:00
chan b956f6ccdf Merge pull request 'ORGFRONT_CALLBACK_URLS' (#575) from add/deploy into dev
Reviewed-on: baron/baron-sso#575
2026-04-17 10:38:41 +09:00
chan d70f11c904 ORGFRONT_CALLBACK_URLS 2026-04-17 10:34:03 +09:00
chan 4c13cf6ef5 Merge pull request 'id lowercase' (#574) from add/deploy into dev
Reviewed-on: baron/baron-sso#574
2026-04-17 10:27:27 +09:00
chan 149b52f831 id lowercase 2026-04-17 10:25:45 +09:00
chan 24f6433b2b Merge pull request 'add/deploy' (#573) from add/deploy into dev
Reviewed-on: baron/baron-sso#573
2026-04-17 10:04:02 +09:00
chan 699aa7cfc8 orgFront inrp 등록 2026-04-17 10:03:38 +09:00
chan 35ce7853fa Baron SSO 다중 인스턴스 배포 템플릿 2026-04-16 14:04:37 +09:00
chan 001f29ca5f Merge pull request 'feature/org-chart-tab-separation' (#568) from feature/org-chart-tab-separation into dev
Reviewed-on: baron/baron-sso#568
2026-04-16 09:08:48 +09:00
chan c114c4187d test(backend): implement missing repository interface methods in mocks
- Implement FindByCompanyCodes and FindByTenantIDs in various test mock repositories to satisfy the UserRepository interface.
2026-04-15 17:58:50 +09:00
chan ef996c8394 fix(adminfront): fix lint error in AppLayout.tsx
- Define NavItem interface to properly type navigation items
- Remove unsafe 'as any' cast in navigation mapping
2026-04-15 17:48:41 +09:00
chan a49aa2d31f refactor(adminfront): remove internal org-chart and delegate to orgfront
- Remove TenantOrgChartPage and related internal routes
- Update AppLayout to render external links for org-chart navigation
- Add orgfront service configuration to docker-compose.yaml
2026-04-15 17:44:54 +09:00
chan 726ac71214 fix(user): preserve multi-tenant companyCodes and fix Kratos code parsing
- UpdateUser: Implement 'Preserve & Merge' logic to fetch existing joined
  tenants from Keto and merge them with UI requests, preventing the
  loss of multi-tenant affiliations.
- Keto Sync: Expand the self-healing background job to iterate over all
  companyCodes, ensuring 'members' relations are created for every
  joined tenant (fixes #554).
- AuthHandler: Update extractFirstString to gracefully handle numeric
  JSON types, fixing an issue where Kratos login codes were lost during
  Courier webhook processing.
2026-04-15 16:01:31 +09:00
chan 948dc2236b feat(orgchart): Introduce standalone orgchart RP and shared link public API
This commit includes:
- Added SharedLink data model and Keto-bypassed public API for orgchart view
- Configured 'orgfront' as a new OAuth2 client in hydra
- Applied MH Dashboard premium beige theme to OrgChart
- Implemented user lookup fallback to company code
2026-04-14 18:01:27 +09:00
chan 772e3ed5e3 Merge pull request 'feature/org-chart-tab-separation' (#547) from feature/org-chart-tab-separation into dev
Reviewed-on: baron/baron-sso#547
2026-04-13 13:26:07 +09:00
chan a1d508ed69 test(backend): fix tenant_handler_test by adjusting mock call for new ListTenants logic
Adjusts parameter matching on mockSvc.ListTenants to use mock.Anything and mockUserRepo methods, ensuring the test safely covers the newly added allTenants internal sub-query flow without fragile strict args.
2026-04-13 13:23:09 +09:00
chan 010719eee9 feat(backend): allow regular users and tenant admins to list their full tenant trees
Changes the /v1/admin/tenants endpoint to be accessible by all authenticated users (requireAnyUser). In the handler, it dynamically resolves the user's affiliations and filters the response to return the complete hierarchical tree (root, parent, child, sibling nodes) for any tenant they belong to.
2026-04-13 11:56:35 +09:00
chan 0cd43f0aea feat(adminfront): restore top-right tenant filter buttons in new org chart
Re-adds the group tabs ('전체', '한맥엔지니어링', etc.) to the top-right corner to allow users to filter the org chart by root tenant, restoring the lost functionality from the previous multi-tenant upgrade.
2026-04-13 11:30:40 +09:00
chan 9ff49230fc feat(adminfront): map multi-tenant users onto Tenant Full Tree
Reimplements the Org Chart using the Tenant Full Tree API and maps users to all their respective tenants (including joinedTenants). Multi-tenant users are duplicated correctly across nodes they belong to.
2026-04-13 11:20:41 +09:00
chan b08516f557 Revert "feat(adminfront): rebuild Org Chart strictly based on Tenant Full Tree"
This reverts commit 3bd8724d45.
2026-04-13 11:07:26 +09:00
chan 3bd8724d45 feat(adminfront): rebuild Org Chart strictly based on Tenant Full Tree
Replaces the legacy user-department-based org chart generation with one driven by the actual Tenant hierarchy from the database (via fetchTenants) while still mapping users dynamically to their respective nodes.
2026-04-13 11:01:44 +09:00
chan ea44785ef0 feat: expand manageableSlugs to include entire tenant tree for users
Allows users and tenant admins to view users across all tenants within their hierarchy (both parent and child organizations) instead of just their direct tenant.
2026-04-13 10:51:29 +09:00
chan d3a82d1653 feat: allow regular users to view their own tenant's org chart
Changes the /users endpoint to allow RoleUser access and securely restricts the returned data to only users within their affiliated tenants. Removes the unnecessary back button from the Org Chart view since it's now a top-level nav item.
2026-04-13 10:47:56 +09:00
chan 984adcfa62 feat(adminfront): add org chart to sidebar navigation
Adds the Organization Chart tab to the main sidebar for all users. Removes the 'View Org Chart' button from the Tenant List page. Enhances active state logic for nested routes.
2026-04-13 10:38:04 +09:00
chan 6f934da428 Merge pull request 'adminfront test error' (#546) from fix/rebac-env-sync-issue into dev
Reviewed-on: baron/baron-sso#546
2026-04-13 09:59:16 +09:00
chan fd8bd01f33 fix(ci): enforce playwright deps installation in CI
Remove conditional skipping of 'npx playwright install --with-deps' to ensure OS-level dependencies are installed even when browser binaries are cached.
2026-04-13 09:40:04 +09:00
chan 4fdfbfe53e Merge pull request 'fix/rebac-env-sync-issue' (#543) from fix/rebac-env-sync-issue into dev
Reviewed-on: baron/baron-sso#543
2026-04-10 18:06:43 +09:00
chan 12b8958a72 fix(adminfront): fix react hooks violation in UserDetailPage causing infinite loading
- Fix 'Rendered fewer hooks than expected' crash by moving useMemo hook definition above all early returns
- Resolves e2e test timeout failures in users_schema.spec.ts and users.spec.ts
2026-04-10 17:44:00 +09:00
chan 6c6fab3ea3 fix(adminfront): fix tenant slug display and metadata save issue in user detail page
- Fix 'System Global' displaying by replacing user.tenantSlug with user.companyCode returned by backend
- Prevent primary tenant from being unlinked when saving 'Tenant Profile' tab by ensuring userAffiliatedTenants always includes the primary tenant, preventing react-hook-form from clearing the tenantSlug value.
2026-04-10 17:26:25 +09:00
chan 85d3f4099d Merge pull request 'fix/rebac-env-sync-issue' (#542) from fix/rebac-env-sync-issue into dev
Reviewed-on: baron/baron-sso#542
2026-04-10 16:32:12 +09:00
chan f33f023b90 style(userfront): format dart files to fix ci pipeline 2026-04-10 16:00:37 +09:00
chan a96ef3d204 fix(i18n): fix duplicate TOML section for ui.admin.tenants
- Prevent template overwrite caused by duplicate section parsing logic
- Ensures '테넌트 목록' correctly renders instead of '테넌트 구성원 ({{count}})'
2026-04-10 15:58:56 +09:00
chan addb0fe042 fix(adminfront): fix e2e test assertions and biome linter errors
- Fix strict biome errors in OrgChartUploadModal and TenantOrgChartPage (key indices, any types, aria roles, hook dependencies)
- Fix duplicate translation blocks that broke the i18n parser
- Fix UI label assertions in Playwright e2e tests due to updated i18n keys
2026-04-10 15:12:09 +09:00
chan 4293013d4f chore(i18n): sync adminfront locales with new keys
- Adminfront 화면에 표시될 한국어/영어 문구(테넌트 검색, 총 n개 로그 등) 추가
2026-04-10 14:49:19 +09:00
chan ec0c6eae26 fix(adminfront): resolve typescript build errors on CI
- Fix missing position and jobTitle properties in BulkUserItem interface
- Fix incorrect reference to undefined total property in AuditLogsPage (reverted to logs.length)
2026-04-10 14:43:56 +09:00
chan ea90327507 fix(tests): resolve failing go tests and segfaults due to missing mock interface implementations
- MockKratosAdminService 및 MockTenantService에 새로 추가된 인터페이스 메소드(CreateUser, ListIdentitySessions 등) 구현 추가
- 회원가입 테스트(auth_handler_signup_test.go) 시, isAffiliateTenant 검증 과정에서 TenantService가 nil일 때 발생하는 segfault 방지 로직 보강
- Mock 객체 반환값 타입 불일치 및 testify/mock 매개변수 에러 등 테스트 의존성 전반 수정
2026-04-10 14:40:16 +09:00
chan c312d4cc6d chore(i18n): sync locales with new UI keys
- 누락되었던 테넌트 조직, 사용자 상태, API Key 갯수 등 8개의 번역 키 추가
2026-04-10 14:06:02 +09:00
chan 5a84e9f6cc Merge branch 'dev' into fix/rebac-env-sync-issue 2026-04-10 13:52:07 +09:00
chan 349cdf5fcd feat(org): 조직도 렌더링 및 동기화 로직 대폭 개선, 역할(Role) 강제화, 탭 정리
- 조직도 렌더링 시 너비 동적 계산 및 스크롤 문제 해결
- 하위 조직(Leaf)을 부모 박스 내부에 임베딩하여 2열로 깔끔하게 표시되도록 조직도 UI 전면 개편
- 사용자 생성/수정 및 CSV 업로드 시 직급(Position)과 직무(JobTitle)가 정상적으로 Kratos 및 로컬 DB에 동기화되도록 백엔드 API 수정
- CSV 조직도 업로드 시 계층 구분을 '/' 대신 ' > '로 변경하여 이름에 '/'가 포함된 부서(예: 평면/셀)가 분리되지 않도록 보호
- 잘못 입력된 과거 직책 데이터(팀장, 그룹장 등)를 'user' 권한으로 일괄 초기화하고, 이후 'role' 필드에 시스템 권한(user, tenant_admin, super_admin) 외의 값이 들어오지 않도록 백엔드 정규화 로직 강화
- 사용자 목록 페이지의 페이지네이션 제한을 50명에서 1000명으로 상향 조정
- 테넌트 목록 페이지에 이름/슬러그 기반 검색 기능 추가
- 관리자 UI 전반에서 불필요한 배지(Admin only, System 등) 제거 및 테넌트 상세 페이지의 미사용 '외부 연동' 탭 삭제
2026-04-10 13:48:12 +09:00
chan 5211842d47 조직도 기능 추가 2026-04-10 11:38:47 +09:00
chan 6971b69b79 feat(admin): add org chart bulk import button to main tenants list page (#500) 2026-04-07 16:42:23 +09:00
chan 02255116f4 feat(org): enhance bulk import to support multi-level hierarchy, auto-provision users, and map matrix organizations (#500) 2026-04-07 15:34:25 +09:00
chan b3a7f47cf7 feat(auth): lock affiliation type on frontend based on verified email domain (#500) 2026-04-07 14:03:02 +09:00
chan 4e7f3e7235 feat(auth): enforce explicit tenant selection and dynamic filtering (#500)
- Refactor `GetActiveTenants` to filter dynamically based on the email domain, removing hardcoded affiliate slugs.
- Update `Signup` to require an explicit `CompanyCode` choice for internal domains, removing automatic provisioning and implicit tenant assignment.
- Add markdown diagram detailing the revised, secure B2B2B dynamic provisioning and inheritance flow.
2026-04-07 11:58:50 +09:00
chan 97a60ead91 fix: resolve syntax error in signup_screen caused by redundant closing brace 2026-04-06 17:37:34 +09:00
chan 43ec19e94f feat: remove auto-selection of affiliate by email domain and clean up UI 2026-04-06 17:20:02 +09:00
chan 332ac9c0d8 feat: dynamic frontend tenant dropdown 2026-04-06 16:56:33 +09:00
chan 46db7ac026 fix: handle json parse exceptions on 404/500 signup responses gracefully 2026-04-06 16:29:08 +09:00
chan c78604df06 feat: implement dynamic tenant provisioning and remove hardcoded company mappings 2026-04-06 16:13:03 +09:00
chan cdf2c36915 Merge pull request 'fix/rebac-env-sync-issue' (#517) from fix/rebac-env-sync-issue into dev
Reviewed-on: baron/baron-sso#517
2026-04-06 13:23:14 +09:00
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