# 설정 스냅샷 · 0.8

설정 → 설정 스냅샷에서 내보내기, JSON 파일 선택 또는 붙여넣기, 검증 미리보기, 초안 추가를 지원한다. 서버 저장 완료를 기다린 뒤 성공을 표시한다. 적용 이력은 작업공간에 저장되어 새로고침 후에도 유지된다.

## 지원 계약

- 파이프라인/영업 단계, 폼/조건부 필드, 다중 페이지 사이트·퍼널/스타일/메타, 강의/차시/5종 퀴즈, 자동화 정의, 답변 템플릿의 여섯 영역을 선택한다.
- 고객·기회·예약·수납·응시·진도·대화·실행 기록, 공개 접근 토큰, 파일 본문, 외부 연결, 팀 권한은 포함하지 않는다. 모든 필드는 명시적 허용 목록을 통과한다. 작성한 본문·HTTPS 링크·퀴즈 정답은 콘텐츠이므로 공유 전에 검토한다.
- 파일에 연결된 이미지/차시는 연결 안내 텍스트가 된다. 선택에서 제외된 폼도 안내 텍스트가 된다. 빠진 폼을 쓰는 자동화는 수동 시작으로 바꾸고 제외된 파이프라인 참조를 제거한 뒤 경고한다.
- 대상의 기존 설정과 업무 자료는 유지한다. 새 ID와 새 주소로 추가하고 내부 폼/조건/파이프라인/영업 단계/차시/문항 참조를 재매핑한다. 폼·사이트는 미게시, 강의는 초안, 자동화는 미발행·중지 상태다. 연결을 검토한 뒤 직접 게시한다.
- 파일은 UTF-8 2MB, 구조 깊이 24/노드 50,000, 종류별 설정 500개 등 제한을 검사한다. 손상·알 수 없는 필드·없는 참조·잘못된 퀴즈·조건은 전체 거절한다. 적용 중에는 복사한 상태만 만들고 최종 전체 백업 검증에 성공한 후 CAS 저장 경로에 넘긴다.
- SHA-256은 변조 인증이 아닌 내용 식별자다. 같은 템플릿 ID+내용은 다시 적용해도 추가하지 않는다. 같은 ID의 내용이 바뀌면 거절한다. 의도적으로 다른 복제본을 추가하려면 새 템플릿으로 내보낸다. 적용 중 다른 변경/작업공간 전환은 거절하고 다시 검토하게 한다.
- 편집자는 작업공간의 기존 저장 권한을 사용한다. 조회 전용은 서버에서 저장이 거절된다. 클라이언트 이력은 권한의 근거가 아니다.

## 검증

스냅샷 시험 7개: 허용 필드/원본 불변, 참조 재매핑·초안·멱등, 손상 파일의 원자적 거절, 선택적 내보내기, 크기·ID 충돌, 실제 Worker+Postgres 저장/계정 분리/재조회, 실제 UI 모듈의 붙여넣기·중복·버튼 복구·이스케이프.

브라우저에서 템플릿 생성·다운로드 → 같은 JSON 붙여넣기 → 미리보기 → 서버 저장 → 새로고침 → 재적용 중복 거절 → 사이트 목록의 기존 2개+복제 초안 2개 유지 확인. 합성 작업공간만 사용했다. 화면은 receipts/ui-0.8/template-sites-ui.png. 확장의 파일 URL 접근 권한을 바꾸지 않고 붙여넣기 경로를 사용했다.

## 범위

이는 지원 구성의 수동 파일 교환이다. HighLevel/Agency 스냅샷 파일 호환, 전체 자원 포함, 중앙 버전 배포/업데이트·롤백, SaaS 재판매/과금은 구현하지 않았다. 파일 원본 재연결과 개별 게시가 필요하다. 전체 JSON 복원(현재 자료 교체)과 별도 기능이다.
