2026-08-25 검증 기록
독립 관리자 콘솔
FileStore를 임시 local configuration 경로와 development-only 검증 token으로 기동한 뒤 /admin browser 화면을 확인했다.
| 확인 항목 | 결과 |
|---|---|
| 관리 UI 보호 | admin token을 입력하기 전에는 backend·portal mapping workspace를 표시하지 않음 |
| token 취급 | 화면은 token을 browser sessionStorage에만 보관한다고 안내하며, configuration은 secretRef namespace만 저장한다고 명시 |
| backend 선택 | Cloudflare R2, Amazon S3, Local server disk가 별도 select option으로 표시됨 |
| R2/S3 설정 | bucket, endpoint, secret namespace, region controls 제공. access key/secret key input은 제공하지 않음 |
| local disk 설정 | provider 선택 시 local root 기반 설정 흐름을 제공 |
| portal mapping | portal ID, backend, path prefix, max bytes, MIME allowlist, retention, encryption, RAG/read/write policy controls 제공 |
이 검증은 외부 R2·S3 credential 또는 production configuration을 사용하지 않았다.
추가 UI 검증에서 Local server disk를 선택하면 R2/S3 secret namespace·bucket·endpoint controls가 숨겨지고, process writable mounted-root를 입력하는 Local disk root control이 표시되는 것을 확인했다. 검증용 backend ID와 temporary local root를 입력했으며 외부 credential은 사용하지 않았다.
실제 admin UI 검증에서 temporary local root의 읽기·쓰기 검증이 성공했고, local backend 저장 후 backend list에 LOCAL_VOLUME으로 표시되며 포털 mapping backend selector에도 즉시 반영되는 것을 확인했다. 이 저장은 임시 local JSON configuration 파일에만 수행했다.
포털 mapping browser 검증 중 dynamic form의 input index를 실제 field ID로 재확인한 뒤, document-lib portal ID, attachments prefix, 5 MiB max bytes, PDF/PNG/JPEG allowlist로 값을 보정했다. 이 값은 다음 저장 action 전에 UI에 정확하게 표시됨을 확인했다.
API 보안 및 attachment lifecycle 검증
| 검증 항목 | 결과 |
|---|---|
| portal service token으로 admin configuration 조회 | HTTP 401로 차단 |
| admin token으로 configuration 조회 | HTTP 200 성공 |
| admin configuration response | ACCESS_KEY, SECRET_ACCESS_KEY, admin token 문자열 패턴 미포함 |
| local mapping upload | DocumentLibrary mapping으로 attachment 생성 HTTP 201 |
| activation | scanner activation HTTP 200, 파일 status ACTIVE 확인 |
| object location | attachments/document-lib/<asset-id>/... portal prefix에 실제 파일 1개 생성 |
검증용 token·configuration·local object root는 모두 임시 local 자원이며, external R2/S3 endpoint나 production secret을 사용하지 않았다.