Project

General

Profile

개선 #5

Updated by Carl Friedrich Gauss 1 day ago

glob 패턴을 이용해 민감파일 접근 제한 정책을 정의하고, 앱의 파일 읽기/컨텍스트 수집/도구 실행 흐름에 일관되게 반영한다. 

 요구사항: 
 - 민감파일 접근 제한 대상을 glob 패턴으로 정의할 수 있어야 한다. 
 - 정책은 requirements.toml 또는 이에 준하는 enterprise 정책 설정에서 관리되어야 한다. 
 - 예: .env, *.pem, *.key, id_rsa, credentials 관련 파일 등 민감정보가 포함될 수 있는 파일을 차단 대상으로 지정할 수 있어야 한다. 
 - app-server 또는 안전한 정책 적용 계층에서 접근 가능 여부를 판단하고, renderer가 직접 파일 접근 정책을 우회하지 않도록 한다. 
 - 파일 검색, 컨텍스트 수집, 첨부/열람, 도구 호출 전 파일 접근 경로에 동일한 제한이 적용되어야 한다. 
 - 프로젝트 루트 기준 상대 경로와 절대 경로가 모두 예측 가능한 방식으로 glob 정책에 매칭되어야 한다. 
 - 차단된 파일 접근 시 실제 민감 경로나 내용을 과도하게 노출하지 않는 사용자 친화적 오류를 표시한다. 
 - 허용/차단 정책의 우선순위가 명확해야 하며, 향후 전역/프로젝트별 정책 확장을 고려한다. 

 완료 기준: 
 - glob 패턴으로 차단 파일 목록을 설정할 수 있다. 
 - 차단 대상 파일은 검색/컨텍스트 수집/열람 흐름에서 제외된다. 
 - 차단 대상 파일을 직접 접근하려는 경우 접근이 거부되고 이해 가능한 오류가 표시된다. 
 - 정책 적용 로직이 app-server 또는 공통 정책 계층에 모여 있어 UI에서 우회할 수 없다. 
 - 대표 민감파일 패턴에 대한 단위 테스트 또는 동등한 검증이 추가된다. 

 LavisAgent 기준 보강: 
 - LavisAgent 프로젝트의 실제 민감파일 정책은 `/Users/jeonginkim/IdeaProjects/lavisagent/src/main/kotlin/com/hyundaifuturenet/hive/mcp/SensitiveFilePolicy.kt`의 built-in baseline을 기준으로 동일하게 반영한다. 
 - 아래 LavisAgent built-in ignore 패턴을 Hive X의 기본 민감파일 차단 baseline으로 포함한다. 
   - `.env` 
   - `.env.*` 
   - `application*.yml` 
   - `application*.yaml` 
   - `application*.properties` 
   - `credentials*` 
   - `.npmrc` 
   - `.pypirc` 
   - `.git-credentials` 
   - `.netrc` 
   - `.htpasswd` 
   - `id_rsa` 
   - `id_ed25519` 
   - `id_dsa` 
   - `id_ecdsa` 
   - `*secret*` 
   - `*password*` 
   - `*passwd*` 
   - `*private_key*` 
   - `*privatekey*` 
   - `*private-key*` 
   - `*api_key*` 
   - `*apikey*` 
   - `*api-key*` 
   - `*service_account*` 
   - `*serviceaccount*` 
   - `*service-account*` 
   - `*.pem` 
   - `*.key` 
   - `*.p12` 
   - `*.pfx` 
   - `*.jks` 
   - `*.keystore` 
   - `*.tfstate` 
   - `*.kdbx` 
   - `*.tfstate.backup` 
 - LavisAgent의 `.hiveignore`/전역 ignore 동작도 참고해, 전역 ignore 패턴과 프로젝트별 `.hiveignore`를 같은 glob 문법으로 처리한다. 
 - baseline 민감파일 패턴은 사용자 ignore 설정이 꺼져 있어도 기본 차단되어야 하며, 전역/프로젝트별 ignore는 그 위에 추가 정책으로 적용한다. 
 - 패턴 매칭은 대소문자 차이, Windows/Unix 경로 구분자, 프로젝트 상대 경로를 고려해 LavisAgent와 동등한 결과가 나오도록 검증한다. 

 추가 완료 기준: 
 - 위 LavisAgent built-in baseline 패턴 전체가 Hive X 정책에 반영된다. 
 - `.env.local`, `application-prod.yml`, `credentials.json`, `id_rsa`, `server.pem`, `private.key`, `terraform.tfstate`, `vault.kdbx` 등 대표 케이스가 차단되는 테스트가 추가된다. 
 - `.hiveignore`와 전역 ignore 패턴의 적용 범위가 LavisAgent 문법과 호환된다. 

Back