본문으로 건너뛰기

Report와 설정 복원

python
copied = client.import_documents("exported", reports=["note.pxreport"])

export_documents가 만든 Report와 설정 snapshot을 대상 Project에 복원합니다. 각 Report의 문서·head·설정·첨부 도달성·영수증은 한 트랜잭션으로 저장되며 기존 대상 key나 설정이 있으면 덮어쓰지 않습니다. 여러 Report는 순서대로 처리하며 충돌 시 중단합니다. Flow 문서를 포함한 번들은 reports를 명시해야 하며, Flow import는 지원하지 않습니다. 설정 snapshot이 없는 이전 export는 자동 기본값을 넣지 않고 거부합니다.

본문에만 있는 첨부파일과 입력 attachment 레지스트리의 첨부파일을 모두 복원합니다. 파일이 빠졌거나 기록된 크기·콘텐츠 해시와 다르면 Report를 저장하기 전에 거절합니다. Report revision의 본문과 입력 레지스트리는 이 과정에서 재작성하지 않습니다.

SDK는 import를 보내는 연결에서 첨부파일을 먼저 업로드합니다. 다른 연결에서 업로드한 파일이나 저장소에 이미 있는 파일의 digest만으로 이를 대신할 수 없습니다. 성공한 import는 사용한 업로드 증명을 소비하며, SDK 재시도는 파일을 다시 업로드합니다. 아직 소비하지 않은 첨부파일 업로드 증명은 연결당 최대 4,096개이며 연결 종료 시 폐기됩니다. 이 증명이 Project 접근 권한이나 파일의 영구 보존을 부여하지는 않습니다.

정식 HTTP 서버의 import에는 대상 Project의 artifact.readartifact.write 권한이 필요하며, 같은 명령의 재시도에도 다시 확인합니다. 서비스 Client가 연결한 서버에서 전송 session을 지원하고 토큰에 product.runtime.transfer 권한이 있으면, SDK는 첨부파일을 먼저 업로드한 뒤 import합니다. 같은 command_id로 재시도하면 파일을 다시 전송하고 이미 적용된 Report는 기존 receipt로 확인합니다.

전송 session은 사용자·Organization·토큰·Project에 묶입니다. 유휴 60초 또는 서버 재시작 뒤에는 새로 업로드해야 하며, 같은 session의 요청은 같은 서버 인스턴스로 전달해야 합니다. 전송당 최대 32 MiB, chunk당 최대 64 KiB입니다. 필요한 업로드 증명이 없는 첨부 import는 PX_PERMISSION_DENIED / connectionStagedContent로 거절합니다. 저장소에 이미 있는 파일의 digest도 업로드 증명을 대신하지 않습니다. 이 SDK 경로의 지원은 브라우저 업로드 UI나 특정 웹 서비스의 배포 완료를 뜻하지 않습니다.

새 import는 실제 업로드한 첨부의 사용 근거를 대상 Project에 함께 기록합니다. 이후 같은 Project의 다른 Report에서도 해당 digest를 첨부 source로 재사용할 수 있습니다. 다른 Project의 접근 권한을 함께 가져오거나, 과거 보관 기록을 사용 권한으로 바꾸지는 않습니다.

중단된 import를 재개하는 경우 command_id에 실패 refusal이 담아 준 refusal.command_id 값을 그대로 전달합니다. 이미 기록된 Report는 기록된 revision을 그대로 반환하고 나머지만 저장합니다. 부분 실패 refusal은 accepted_documents(완료된 Report 결과 tuple)와 failed_index(선택 목록에서 거부된 위치)를 제공합니다.

V1과 V2 묶음을 읽습니다. V2는 Report별 documentContents에 명시된 원본·분석·인용·번역 집합과 실제 파일을 Core로 검증합니다. 부모 누락·다른 원본 연결·잘못된 canonical bytes는 거절합니다. 원본 출처는 유지하고 대상 Report와 import 명령의 출처 기록은 별도로 저장합니다. 파생 참조·관계·출처도 Report와 같은 트랜잭션에 포함됩니다.

V2의 직접 첨부와 전이 참조 파일 모두 해당 연결에서 업로드해야 합니다. 현재 전송 V1의 파일당 상한은 32MiB이며 분석·인용·번역 값의 상한은 16MiB입니다. V2는 대상의 Host 문서 권한이 필요하며 현재 안정적인 principal의 단독 Desktop 로컬 경로에서 지원합니다. 기존 V1 가져오기 권한 경로는 유지합니다. 원본 Project에 접근할 권한을 함께 가져오지는 않습니다.