G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
114 lines
2.7 KiB
JSON
114 lines
2.7 KiB
JSON
{
|
|
"name": "GUARDiA ITSM",
|
|
"short_name": "GUARDiA",
|
|
"description": "AI 기반 레거시 인프라 자율 운영 플랫폼",
|
|
"start_url": "/",
|
|
"scope": "/",
|
|
"display": "standalone",
|
|
"orientation": "any",
|
|
"background_color": "#1a1d2e",
|
|
"theme_color": "#4f8ef7",
|
|
"lang": "ko",
|
|
"dir": "ltr",
|
|
"categories": ["productivity", "utilities"],
|
|
"icons": [
|
|
{
|
|
"src": "/static/icons/icon-72.png",
|
|
"sizes": "72x72",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-96.png",
|
|
"sizes": "96x96",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-128.png",
|
|
"sizes": "128x128",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-144.png",
|
|
"sizes": "144x144",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-152.png",
|
|
"sizes": "152x152",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-384.png",
|
|
"sizes": "384x384",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
},
|
|
{
|
|
"src": "/static/icons/icon-512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "any maskable"
|
|
}
|
|
],
|
|
"screenshots": [
|
|
{
|
|
"src": "/static/screenshots/dashboard.png",
|
|
"sizes": "1280x720",
|
|
"type": "image/png",
|
|
"label": "대시보드"
|
|
},
|
|
{
|
|
"src": "/static/screenshots/mobile.png",
|
|
"sizes": "390x844",
|
|
"type": "image/png",
|
|
"label": "모바일 뷰"
|
|
}
|
|
],
|
|
"shortcuts": [
|
|
{
|
|
"name": "SR 접수",
|
|
"short_name": "SR 접수",
|
|
"description": "새 서비스 요청 접수",
|
|
"url": "/?action=new-sr",
|
|
"icons": [{ "src": "/static/icons/icon-96.png", "sizes": "96x96" }]
|
|
},
|
|
{
|
|
"name": "대시보드",
|
|
"short_name": "대시보드",
|
|
"description": "운영 대시보드 보기",
|
|
"url": "/",
|
|
"icons": [{ "src": "/static/icons/icon-96.png", "sizes": "96x96" }]
|
|
},
|
|
{
|
|
"name": "인시던트",
|
|
"short_name": "인시던트",
|
|
"description": "인시던트 목록",
|
|
"url": "/incidents",
|
|
"icons": [{ "src": "/static/icons/icon-96.png", "sizes": "96x96" }]
|
|
}
|
|
],
|
|
"related_applications": [],
|
|
"prefer_related_applications": false,
|
|
"share_target": {
|
|
"action": "/api/share",
|
|
"method": "POST",
|
|
"enctype": "application/x-www-form-urlencoded",
|
|
"params": {
|
|
"title": "title",
|
|
"text": "text",
|
|
"url": "url"
|
|
}
|
|
}
|
|
}
|