크라우니엔터프라이즈 멀티테넌시 보완 3건
개요
2026-06-15 배포 전 보완 완료: GET 격리 + SoD초기화 통합 + dat 마이그레이션
무엇을 했는지
보완1: GET 조회 핸들러 격리
GET처리() 함수 시그니처에 현재회사 인자 추가
요청처리() → GET처리(소켓, 경로, 쿼리문자열, 현재회사) 호출 수정
- 서버.한선 최상단에
가져오기 "격리강화.한선" 추가
- 격리 적용 엔드포인트:
/api/finance, /api/pnl, /api/scm, /api/hrm, /api/crm, /api/project, /api/project/list, /api/asset, /api/asset/list, /api/document, /api/production
- 회사격리전체/회사격리조회/격리행수/격리집계합 사용
보완2: SoD초기화 통합
ERP초기화() → 보안초기화() 직후에 SoD초기화() 추가
- 역할부여() 전에 호출되므로 bootstrap 위반 없음
- 검증:
/api/security/sod → SoD규칙:3, 위반:0, 미처리:0
보완3: dat 무중단 마이그레이션
dat회사코드마이그레이션(DB, 기본회사코드, pk컬럼) 함수 추가
ERP테이블불러오기() 내 5개 핵심 테이블 + 프로젝트 + 문서 로드 직후 호출
- 회사코드 빈 행 → "미지정"으로 주입 (데이터 손실 0)
- pk컬럼: 직원="사번", 고객/상품/자산/프로젝트/문서="코드", 분개="번호"
관련 파일 경로
/Users/ef/crowny-enterprise/서버.한선 — 3건 모두 적용
/Users/ef/crowny-enterprise/격리강화.한선 — 격리래퍼 (기존 유지)
/tmp/ent.fix.toau — 컴파일 결과물 (배포용)
검증 결과
- 컴파일: OK (hanseonc_high)
- 격리검증_단순.한선: 9/9 T
- GET /api/hrm (crowny 토큰): 직원 0→1 (crowny 전용)
- GET /api/hrm (amena 토큰): 0 (crowny 직원 비노출)
- SoD: 규칙3, 위반0
- 테스트포트: 19712
잔여 이슈
- ERP테이블불러오기는 파일존재() -1 반환 이슈로 실제 미호출 (TODO 주석 유지)
- dat 마이그레이션은 부하시 로드 경로 복원 시 자동 적용될 예정