fix(부서관리): 보안 + 운영 데이터 버그 8건 (PR #18/#19 후속) #20

Merged
johngreen merged 1 commits from johngreen into main 2026-05-14 08:26:16 +00:00
Contributor

PR #18 (기준일 필터) + PR #19 (다중 관리자) 머지 후 발견된 버그 8건 일괄 수정.

Security

    1. Cross-tenant user_id injection 차단: syncManagers 가 user_id 의 회사 격리 및 실존을 selectValidUserIds 로 검증

Bugs

    1. base_date 필터 + START_DATE NULL 부서 누락 해결
    1. PUT partial update 시 매니저 키 없으면 sync skip (기존 데이터 보존)
    1. PR #19 이전 단일 컬럼 데이터 backfill (chip UI 에 표시되도록)

Validation / Robustness

    1. Controller base_date 형식 검증 (YYYY-MM-DD regex)
    1. parseManagersJson 64KB max + log.warn
    1. 프론트 handleSave 시작일 > 종료일 검증
    1. StartupSchemaMigrator 실패 테넌트 DB 명단 부팅 종료 시 log.error 집계

DDL 변경 없음. 마이그레이션 불필요.
Code review: 8건 모두 의도대로 적용 + 회귀 없음 확인.

PR #18 (기준일 필터) + PR #19 (다중 관리자) 머지 후 발견된 버그 8건 일괄 수정. **Security** - 1. Cross-tenant user_id injection 차단: syncManagers 가 user_id 의 회사 격리 및 실존을 selectValidUserIds 로 검증 **Bugs** - 2. base_date 필터 + START_DATE NULL 부서 누락 해결 - 3. PUT partial update 시 매니저 키 없으면 sync skip (기존 데이터 보존) - 4. PR #19 이전 단일 컬럼 데이터 backfill (chip UI 에 표시되도록) **Validation / Robustness** - 5. Controller base_date 형식 검증 (YYYY-MM-DD regex) - 6. parseManagersJson 64KB max + log.warn - 7. 프론트 handleSave 시작일 > 종료일 검증 - 8. StartupSchemaMigrator 실패 테넌트 DB 명단 부팅 종료 시 log.error 집계 DDL 변경 없음. 마이그레이션 불필요. Code review: 8건 모두 의도대로 적용 + 회귀 없음 확인.
johngreen added 1 commit 2026-05-14 08:26:09 +00:00
- security: syncManagers 가 user_id 의 회사 격리·실존 검증 (cross-tenant injection 차단)
- bug: base_date 필터에 START_DATE IS NULL 조건 추가 — 옛날 데이터가 기준일 켜자마자 사라지는 문제 해결
- bug: PUT partial update — 매니저 키 없으면 sync skip (단일 필드 수정 시 매니저 보존)
- bug: 페이지 로드 시 단일 컬럼 backfill — PR #19 이전 데이터가 chip UI 에서 사라지는 문제 해결
- validation: Controller base_date YYYY-MM-DD regex (잘못된 형식 시 400)
- validation: 프론트 handleSave start_date > end_date 체크
- robustness: parseManagersJson 64KB max + log.warn (catch silent swallow 제거)
- ops: StartupSchemaMigrator 실패 테넌트 DB 명단 부팅 종료 시 log.error 집계
johngreen added 1 commit 2026-05-14 08:26:10 +00:00
- security: syncManagers 가 user_id 의 회사 격리·실존 검증 (cross-tenant injection 차단)
- bug: base_date 필터에 START_DATE IS NULL 조건 추가 — 옛날 데이터가 기준일 켜자마자 사라지는 문제 해결
- bug: PUT partial update — 매니저 키 없으면 sync skip (단일 필드 수정 시 매니저 보존)
- bug: 페이지 로드 시 단일 컬럼 backfill — PR #19 이전 데이터가 chip UI 에서 사라지는 문제 해결
- validation: Controller base_date YYYY-MM-DD regex (잘못된 형식 시 400)
- validation: 프론트 handleSave start_date > end_date 체크
- robustness: parseManagersJson 64KB max + log.warn (catch silent swallow 제거)
- ops: StartupSchemaMigrator 실패 테넌트 DB 명단 부팅 종료 시 log.error 집계
johngreen merged commit 2f52d9587e into main 2026-05-14 08:26:16 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gbpark/invyone#20