Open T2Editor 마켓 개발
DSc 공식 마켓과 Provider Market이 공유하는 manifest·패키지 계약을 설명합니다.
Open T2Editor 마켓 개발
Open T2Editor는 DSc(dsclub.kr)가 소유·운영하는 공식 마켓이다. 다른 회사나 도메인이 운영하는 마켓은 T2Editor Provider Market이라 부른다. 둘은 소유 주체가 다르지만 같은 설치 계약을 구현할 수 있다.
Manifest 필수 계약
schema는 t2editor-third-party-v1이어야 한다. ID는 소문자·숫자로 시작하고 제한된 점·밑줄·하이픈만 사용한다. 플러그인 ID에는 점을 쓸 수 없다.
필수 항목은 다음과 같다.
id,name,version,type- 유형과 일치하는
install.base,install.target,install.source - 플러그인의
install.entry인<source>/hooks.js requires.php_min,requires.php_max,requires.t2editor_minlicense.id,license.name- 릴리즈 정보를 제공할 때 허용된
release.type과 변경 내역
지원 유형은 plugin, extend-js, extend-php, locales다. 구형 /locale 표기는 읽을 때 /locales로 정규화되지만 신규 발행은 /locales를 사용한다.
설치 구조
- 플러그인 ZIP은 manifest의 source 디렉토리만 포함하고
hooks.js가 있어야 한다. - Extend JS·PHP ZIP은 선언한 단일 파일 하나만 포함한다.
- Locales ZIP은 언어 코드 JSON과 선택적 README·LICENSE만 포함한다.
- 설치기는 요구 버전, ZIP 경로, symlink, 파일 수·용량을 검증하고 백업 후 원자적으로 교체한다.
설치·다운로드 같은 민감 작업은 관리자 권한, CSRF와 재승인을 확인한다. 그누보드5·라이믹스는 현재 CMS 관리자 세션을, 독립 환경은 로컬 관리자 비밀번호를 사용한다. 마켓 서버 응답은 로컬 서버가 다시 검증하며 원격 마켓이 설치 경로나 메이저 위험 확인값을 임의로 정할 수 없다.
10.5.0 기준 변경점
10.5.0 마켓 설치기는 ZipArchive가 없으면 zlib 서버 처리, 두 기능이 모두 없으면 브라우저 보조 해제를 사용할 수 있다. 어떤 경로를 사용해도 manifest, 경로 탈출, 파일 크기, CRC와 적용 대상 메이저를 서버에서 검증한다. UI는 현재 메이저와 t2editor_min 메이저가 다를 때 호환성 경고를 카탈로그·릴리스·최종 승인에 일관되게 표시한다.