Redmine #490 - VPD Policy/Filter/적용 계층 정리 설계
프로젝트 개요
VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이블로 제어하기 위한 Spring Boot 관리 도구다. VPD 설정 화면은 Oracle DB의 TABLE/VIEW에 VPD policy를 적용하고, policy는 filter function을 참조한다. ORDS는 VPD가 적용된 TABLE/VIEW를 HTTP API로 서빙하는 별도 레이어다.
목표
VPD 설정 화면에서 개별 적용과 벌크 적용이 같은 계층으로 보이게 정리한다.
정리할 계층:
Filter Function: 행 predicate를 반환하는 PL/SQL 함수Policy Template: policy name, filter function, statement type, enabled/check option 조합TABLE/VIEW 적용: 선택한 policy template을 개별 객체 또는 스키마 객체 목록에 적용
문제
현재 벌크 적용 폼은 VPD Filter Function과 Filter predicate를 직접 입력받는다. 이 표현은 filter function을 TABLE/VIEW에 직접 붙이는 것처럼 보이고, 개별 적용의 Policy / Filter 선택 흐름과도 다르다.
설계
- 개별 적용과 벌크 적용 모두
Policy Template선택을 중심으로 한다. - 선택한 template에서
policyName,functionKey, statement type, enabled, update check 값을 hidden field와 checkbox로 동기화한다. - 벌크 적용 backend는 선택한
policyName을 명시적으로 받아 각 대상 TABLE/VIEW에 같은 policy name으로 적용한다. - filter function 자동 생성 입력은 이번 화면에서 제거한다. filter/policy 관리는
Filter Policy 관리메뉴에서 수행한다. - 선택한 template의 policy name, filter function, statement types를 preview로 표시한다.
완료 기준
- VPD 설정 화면에서 개별 적용과 벌크 적용 모두
적용할 Policy Template을 선택한다. - 벌크 적용 화면에서
VPD Filter Function,Filter predicate직접 입력이 사라진다. - 선택한 template의 policy/function/statement/enabled/check option preview가 표시된다.
- controller/service가 벌크 적용 시 선택된 policy name과 function key를 사용한다.
- 기존 개별 적용 동작은 유지된다.
검증
mvn test- Playwright 화면 확인:
/vpd-policies개별 적용에 policy template preview 표시/vpd-policies벌크 적용에 policy template select 표시- 벌크 적용에 filter function 직접 선택/textarea가 없음
- 390px 모바일 body overflow 없음