Files
AriWeb-Suite/portal/webmaker/REUSE.md
T

7.2 KiB

Webmaker 기존 기능 적용 기록 (Ariweb Suite 0.1.1 → 0.2.0, 개발 지시 §0.1·§0.2·§0.5 · v0.2.0 직접 편집)

  • 원본: https://source.ibit.kr/OZ-Group/WebHosting_AI_agent — 고정 revision 4b8c4d0de0f69025001a9e0a28a58a94e1a1f088 (Webmaker 1.8.0, 브랜치 feature/visual-editor-v1.8.0·main 원격 ref 검증됨; 0.1.1 의 불변 기준 revision 3b10859884ef2fd0f2af11934ab6c16370fd64b8(v1.7.3) 위의 변경). 개발 중에는 커밋 전 작업 트리에서 나란히 도입했고(IMPORTED_SOURCES.md 의 upstream 칸, workingTreeDirty:true), 커밋 뒤 scripts/import-sources.mjs 의 pin 을 4b8c4d0 으로 올렸다 — 그 pin 으로 다시 만든 도입 기록은 workingTreeDirty:false, 184 파일(수정 8 = Suite 블록 파일). 도입 경로 modules/webmaker/
  • 접근 위치: 포털 사이트 상세 › 제작 탭 › "제작 화면 열기" (/sso/webmaker?site=<siteId>) → Webmaker /api/auth/sso → 기존 빌더 화면. 포털 사용자당 Webmaker 계정 aw-<그룹>-<사용자> 가 자동으로 생기며 별도 로그인은 없다.
  • 회귀 테스트: cd modules/webmaker && CLAUDE_BIN=<즉시 실패하는 가짜 실행 파일> node --test test/*.test.js (원본 6개 파일 + 신규 test/ariweb.test.js + 0.2.0 test/visual-editor.test.js·test/visual-editor-server.test.js). Suite 쪽 회귀는 test/webmaker-visual-editor.test.mjs. 실제 화면 확인 결과는 출시 검증 기록(VERSION_HISTORY.md 검증 절)에 적는다.
  • 0.2.0 추가 기능 — 직접 편집(시각 편집기): 제작 화면(Webmaker 빌더)의 미리보기 도구 줄 "직접 편집". 그대로 도입(Webmaker 1.8.0 기능) + Suite 최소 연결 변경 1건(직접 편집 저장 PUT /api/sites/<id>/visual/<페이지> 에도 저장본 rev 충돌 검사(§9.3) 적용 — 소스 편집기와 같은 409 + 양쪽 요약). 직접 편집은 AI Wallet(캐시)을 쓰지 않으므로 포털 AI Wallet 표시에 영향이 없고, 저장본(버전 visual-edit)은 포털 배포 화면의 저장본 선택에 그대로 보인다.
§0.1 기능 적용 구분 접근 위치 / 비고
AI에게 맡기기·내가 고르기 Site 제작 그대로 도입 제작 탭 → Webmaker 빌더. 포털에서 사이트를 만들 때 제작 방식(ai·manual·quick)을 골라 프로젝트를 만든다(내부 API POST /api/internal/ariweb/projects)
Site Brief 작성과 확인 그대로 도입 Webmaker 기획 단계 그대로
Template과 기존 제작 Module 그대로 도입 Webmaker 생성 탭 "템플릿에서 시작"·모듈 관리 그대로
Page 생성·편집·미리보기·저장 최소 연결 변경 저장(PATCH 기본 사항·PUT 소스 편집·0.2.0 PUT 직접 편집)에 rev 기반 동시 편집 충돌 감지(409 + 두 버전 요약)를 더함(§9.3). rev 를 보내지 않는 기존 화면은 그대로 동작
직접 편집(시각 편집기, Webmaker 1.8.0) 그대로 도입 + 최소 연결 변경(rev 충돌) 제작 화면 미리보기 도구 줄 "직접 편집" — 글 바로 고치기·블록 끌어 옮기기·구성 요소 7종 끌어다 놓기·속성 창·실행 취소/다시 실행·Ctrl+S 저장·저장하지 않은 변경 보호. 페이지 스크립트 비실행 캔버스(sandbox+CSP nonce), 서버 저장 검증(새 스크립트·핸들러·위험 주소·iframe 등 거절). AI 캐시 미사용
AI 생성·수정과 Wallet/Cache 차감 그대로 도입 Webmaker 캐시(credits) 그대로. 포털은 /api/internal/ariweb/credits/<login> 으로 잔액을 읽어 AI Wallet 으로 표시(호스팅 사용량과 분리 §0.2)
이전 저장본과 배포할 저장본 선택 최소 연결 변경 저장본 목록은 Webmaker 버전 기록(git.changes) 그대로. 배포할 저장본 선택은 포털 배포 탭(/api/internal/ariweb/projects/<id>/export?version=N)에서 한다
Domain·DNS·TLS 관리 기능 그대로 도입 등록기관(Openprovider·Porkbun·Route 53)·DNS 공급자·네임서버 이전·레코드 관리는 Webmaker 도메인 탭 그대로(포털 도메인 화면의 "도메인 구매·DNS 자동화(Webmaker)" 링크). 포털은 연결 상태·소유 확인·HTTPS 검증만 가진다
Gitea Source 연결과 변경 이력 그대로 도입 gitstore·connectors/gitea 그대로. 포털 Source 탭은 /api/internal/ariweb/projects/<id>/source 로 읽어 표시
관리형 또는 외부 대상 배포에 이미 사용할 수 있는 기능 미사용(이번 버전) Webmaker 의 배포 서버(deploy.js: local/ssh tar-over-ssh)는 포털 연결 프로젝트에서는 쓰지 않는다. 운영 배포는 HAL/Node Agent 가 맡는다(§32). 포털에 연결되지 않은 Webmaker 단독 프로젝트는 기존 기능 그대로 동작
배포 결과 확인과 이전 Version 복구 기능 미사용(이번 버전) 위와 같은 이유로 포털 배포 탭(되돌리기 = HAL site.rollback)이 담당. Webmaker 발행(plan/publish)은 포털 연결 프로젝트에서 409 로 막고 포털 배포 화면으로 안내
AriMail Server 연결과 Mail 사용량 표시 그대로 도입 Webmaker 관리자 콘솔 메일 서버 등록부·사용량 연동 그대로. 포털 메일 화면은 별도(메일 영역)
사용자·관리자 화면의 설정·상태·통계 기능 그대로 도입 Webmaker 관리자 콘솔·설정 페이지(8795) 그대로

§0.2 수정·개선 항목

항목 구분 구현
별도 로그인 없이 현재 사용자·그룹으로 이용 정책 개선 GET /api/auth/sso?ticket=(server.js) + lib/auth.ensureSsoUser + lib/ariweb.verifyTicket(60초·1회용·HMAC). 상단 배너(public/index.html #ariwebBanner, app.js)에 그룹·사이트 표시
Project 와 운영 Site 구분 정책 개선 lib/ariweb.js 연결 등록부(data/ariweb-links.json), 배너 문구, 사이트 조회 응답 ariweb 필드
Draft Site 가 운영 사이트 수를 쓰지 않음 정책 개선(포털) portal/sites: 초안 생성은 예약 없음, 최초 공개 배포 때 예약
관리형/외부 배포의 비용·책임·상태 구분 정책 개선(포털) portal/sites 배포 방식 화면·동의 기록
상품 권리·Site 별 보장량 배포 전 확인 정책 개선(포털) portal/sites precheck
AI Wallet 과 Hosting·Mail 사용량 분리 정책 개선(포털) 제작 탭 AI Wallet 카드 / 사용량 탭 별도
운영 Version 을 바로 덮어쓰지 않고 Preview 후 배포 정책 개선 Webmaker 발행 차단(연결 프로젝트) + 포털 배포 탭 저장본 선택
진행 상태를 공통 상태·알림에 표시 정책 개선(포털) lib/jobs + lib/notify
Project 삭제가 운영 Site·Domain·Source 를 자동 삭제하지 않음 정책 개선 DELETE /api/sites/<id> 가 포털 /internal/webmaker/project-impact 를 서명 호출해 영향을 보이고, 운영 중이면 거부·확인(acknowledgeImpact) 후에만 폐기. 포털 데이터는 건드리지 않음
동시 편집 충돌 표시 오류 수정 lib/store.js rev + server.js revConflict
기존 기능 오류 수정 — 이번 도입에서 Webmaker 1.7.3 회귀 테스트 전부 통과, 별도 오류 발견 없음