ARISAM 기준 어댑터 매핑
이 문서는 도큐먼트라이브러리의 기존 게시판 동작을 @ui-center/asset-board에 연결할 때의 기준을 고정한다. 이번 추출 단계에서는 ARISAM 런타임 소스를 변경하지 않고, 포털 적용 시 사용할 경계를 문서화한다.
| ASSET 계약 | ARISAM 기존 구현 | 적용 시 처리 |
|---|---|---|
BoardDataSource.list | client/src/features/attachments/api/document-library-api.ts의 게시글 조회 로직 | 보드 목록 API와 상세 조회를 조합해 BoardPage로 변환 |
BoardDataSource.get | 동일 API 어댑터의 게시글 상세 조회 | ApiPostDetail을 BoardPost로 정규화 |
BoardDataSource.create | createApiPost | 게시글 생성 후 파일별 uploadApiFile을 호출 |
BoardDataSource.update | ARISAM 게시글 수정 API 및 첨부 버전 API | 본문 수정과 신규 첨부 업로드를 포털 트랜잭션 정책으로 묶음 |
BoardDataSource.remove | ARISAM 게시글 삭제 흐름 | soft delete 여부와 감사 로그를 ARISAM 서버 정책으로 유지 |
BoardDataSource.download | fetchAttachmentDownloadUrl | 권한 확인 후 presigned URL을 반환 |
AttachmentField 정책 | shared/upload-policy.ts | UI 기본 검증 이후 서버에서 MIME·크기·파일명·악성 파일을 재검증 |
BoardPermissionResolver | DirectoryService 연동 및 ARISAM board permission | portalId와 boardId를 함께 전달하고 포털별 결과를 독립 캐시 |
동작 보존 체크리스트
| 기준 동작 | 보존 여부 확인 방법 |
|---|---|
| 게시글 목록 검색과 페이지 이동 | ARISAM의 동일 보드·동일 검색어로 기존 화면과 Asset 적용 화면의 항목·총 건수 비교 |
| 게시글 상세와 첨부 목록 | 파일명, 버전 최신값, 다운로드 URL 발급 결과 비교 |
| 게시글 생성 후 첨부 업로드 | 게시글 ID 연결, 업로드 실패 시 사용자 오류 표시, 취소 시 AbortError 처리 확인 |
| 첨부 버전 업로드 | attachmentId와 변경 사유가 서버에 전달되는지 확인 |
| 권한별 화면 | portalId가 다른 사용자·포털에서 읽기/작성/삭제/다운로드가 서로 섞이지 않는지 확인 |
적용 후 삭제하지 말아야 할 경계
ASSET 컴포넌트는 ARISAM의 fetch, XMLHttpRequest, storage key, API base URL을 직접 참조하지 않는다. 반대로 ARISAM 어댑터는 UI 컴포넌트에 서버 응답 원문을 노출하지 않고 BoardPost, BoardAttachment, BoardPage로 정규화한다. 이 경계를 지켜야 다른 포털이 같은 UI 소스를 가져가도 자체 API를 독립적으로 사용할 수 있다.