Files
Gnuboard7/templates/_bundled/sirsoft-admin_basic/template.json
T
HeuJung 1c99547bc1 feat(seo): 사이트맵 안전 서빙·잡 견고화·분할 설정 + 캐시 설정 정합
봇 요청 스레드의 동기 생성을 제거하고 디스크 스트리밍 서빙으로 전환했다.
신선도가 만료되면 생성 잡만 예약하고 기존 세트(stale) 또는 503+Retry-After 로
응답해, 대용량에서 봇 요청이 OOM/타임아웃을 유발하던 경로를 끊었다.

- 잡: ShouldBeUnique(고정 uniqueId)+uniqueFor+retryUntil, timeout 300→1800, backoff
- 컨트롤러: 인덱스 stale/503 분기 + 자식 라우트(.xml/.xml.gz 동일 액션)
- 스케줄 withoutOverlapping, 관리자 재생성 큐 이관
- 설정 4키(분할 기준·압축·stale 서빙·수집기 상한) + 고급탭 Sitemap 캐시 짝
- SitemapManager 응답 메시지 다국어화

설정 저장 테스트가 실제 설정 파일(사이트명/언어 포함)을 덮어쓰던 사전결함을
TestCase 전역 격리로 차단하고, 두 탭이 같은 다국어 키를 공유해 한쪽에 틀린
한도를 안내하던 사전결함을 키 분리로 해소했다.
2026-07-18 11:32:11 +09:00

150 lines
3.7 KiB
JSON

{
"identifier": "sirsoft-admin_basic",
"vendor": "sirsoft",
"name": {
"ko": "Admin Basic",
"en": "Admin Basic"
},
"version": "1.0.4",
"license": "MIT",
"description": {
"ko": "그누보드7 기본 관리자 템플릿",
"en": "Gnuboard7 default admin template"
},
"type": "admin",
"locales": [
"ko",
"en"
],
"author": {
"name": "sirsoft",
"email": "contact@sirsoft.com",
"url": "https://sirsoft.com"
},
"release_date": "2026-05-15",
"g7_version": ">=7.0.0",
"dependencies": {
"modules": {},
"plugins": {}
},
"assets": {
"css": [
"assets/css/main.css",
"assets/css/ui-system.css"
],
"js": [
"dist/components.js"
],
"fonts": [
"assets/fonts/"
],
"images": [
"assets/images/"
]
},
"components": {
"basic": [
"a",
"button",
"checkbox",
"div",
"form",
"h1",
"h2",
"h3",
"hr",
"icon",
"img",
"input",
"label",
"li",
"nav",
"p",
"section",
"select",
"span",
"svg",
"table",
"tbody",
"td",
"textarea",
"th",
"thead",
"tr",
"ul"
],
"composite": [
"action-menu",
"admin-footer",
"admin-header",
"admin-sidebar",
"alert-dialog",
"breadcrumb",
"card",
"confirm-dialog",
"data-grid",
"dialog",
"dropdown",
"empty-state",
"filter-group",
"icon-button",
"loading-spinner",
"modal",
"page-header",
"pagination",
"product-card",
"search-bar",
"stat-card",
"status-badge",
"tab-navigation",
"template-card",
"toast"
],
"layout": [
"container",
"flex",
"grid",
"section"
]
},
"preview": {
"thumbnail": "preview/thumbnail.png",
"screenshots": [
"preview/screenshot1.png",
"preview/screenshot2.png"
]
},
"error_config": {
"layouts": {
"401": "errors/401",
"403": "errors/403",
"404": "errors/404",
"500": "errors/500",
"503": "errors/503",
"maintenance": "errors/maintenance"
}
},
"github_url": "https://github.com/gnuboard/g7-template-sirsoft-admin_basic",
"github_changelog_url": "https://github.com/gnuboard/g7-template-sirsoft-admin_basic/blob/main/CHANGELOG.md",
"externals": [
{
"id": "fontawesome",
"type": "style",
"url": "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css",
"preconnect": "https://cdnjs.cloudflare.com"
},
{
"id": "pretendard",
"type": "webfont",
"url": "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css",
"preconnect": "https://cdn.jsdelivr.net",
"crossorigin": "anonymous"
},
{
"id": "flag-icons",
"type": "style",
"url": "https://cdn.jsdelivr.net/npm/flag-icons@7.2.3/css/flag-icons.min.css"
}
]
}