HAIDOX
HAIDOX Help

손님 작업장 입력 파일 안내

현재 상태

손님 작업장의 공개 접수 경로는 아직 꺼져 있다. 이 문서는 공개 전에 고정한 입력 계약을 설명한다. 운영 화면이 열리기 전에는 archive를 제출할 수 없다.

허용 입력

한 요청에는 8MiB 이하 ZIP 또는 TAR archive 하나를 제출한다. Archive 안에는 최대 64개 파일, 8단계 경로와 압축 해제 후 합계 32MiB까지만 허용한다. 적어도 하나의 .org 파일이 있어야 한다.

  • .org 파일은 출판 후보인 =eligible-org=로 분류한다.
  • PNG, JPEG, GIF와 WebP는 참조 여부를 다음 검증 단계에서 확인할 =candidate-asset=으로 분류한다.
  • 그 밖의 regular file은 =ignored=로 기록하며 출판 입력으로 사용하지 않는다.

분류 결과에는 모든 파일의 NFC 상대 경로, byte 수, SHA-256과 정규화된 0644 mode가 포함된다. 일부 파일을 조용히 빼지 않으며 complete manifest 전체가 입력 archive와 함께 commit되어야 한다.

거부되는 archive

절대 경로, .. traversal, 역슬래시·NUL, Windows 예약 이름, 대소문자만 다른 충돌과 너무 깊은 경로는 거부한다. Symlink, device, FIFO, sparse file, 암호화 member와 PAX metadata도 허용하지 않는다. 파일 수·해제 byte·압축률 제한을 넘는 archive는 commit 전에 실패한다.

.git 경로 component와 .gitmodules, .gitattributes, =.gitignore=는 위치와 대소문자에 관계없이 거부한다. 업로드 파일의 hook, filter, submodule 또는 executable mode는 실행하거나 보존하지 않는다.

저장과 보존 경계

수신 중인 byte는 격리 quarantine에만 저장한다. Inventory가 성공하면 서버가 만든 불투명 key로 archive와 manifest를 no-overwrite commit하고 각각의 SHA-256을 DB row와 대조한다. 실패하거나 중단된 partial byte는 제거하고 예약된 byte budget을 반환한다.

브라우저와 작업 VM에는 내부 창고 주소, credential과 파일 경로를 공개하지 않는다. 기존 개발자 WebDAV와 손님 창고는 서로 다른 root와 service principal을 사용한다. DB row, manifest와 저장 byte가 맞지 않으면 결과를 사용하지 않고 요청을 quarantine하여 자동 reconciliation 대상으로 둔다.