57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
# NEXPA SourceHub 3.8 QA RESULT
|
|
|
|
검증일: 2026-09-07
|
|
|
|
## 자동 테스트
|
|
- Python compile: PASS
|
|
- Frontend JavaScript syntax: PASS
|
|
- API pytest: **6 passed**
|
|
- Health/System status: PASS
|
|
- 7개 Current Baseline seed: PASS
|
|
- 실제 파일 upload: PASS
|
|
- Server-side SHA-256: PASS
|
|
- Immutable R2 revision: PASS
|
|
- Signed download URL: PASS
|
|
- 변조된 download token 차단: PASS
|
|
- 역할별 approval permission: PASS
|
|
- Git binding permission: PASS
|
|
- Deployment Gate / disabled executor 처리: PASS
|
|
- 배포 실패/비활성 상태 감사 로그 기록: PASS
|
|
|
|
## 인증 Gate 검증
|
|
- OIDC 모드 미인증 `/`: 로그인 화면만 표시 — PASS
|
|
- `/static/index.html` 직접 접근: **404** — PASS
|
|
|
|
## Migration / Recovery Drill
|
|
- Alembic initial migration: PASS
|
|
- `alembic_version` 생성: PASS
|
|
- SQLite DB backup → restore: PASS
|
|
- Local storage backup → restore: PASS
|
|
- 복구 파일 무결성 확인: PASS
|
|
|
|
## 구현된 Production Hardening
|
|
- Trusted Host
|
|
- Security Headers / CSP
|
|
- Secure Session 옵션
|
|
- CSRF
|
|
- ClamAV adapter
|
|
- SHA-256 before persistence
|
|
- Expiring HMAC download URL
|
|
- Server-side deployment target allowlist
|
|
- Deployment Gate enforcement
|
|
- Alembic
|
|
- DB/storage backup & restore tools
|
|
- DB/MinIO startup retry
|
|
|
|
## 아직 실제 운영값이 필요한 Gate
|
|
다음은 코드 QA 대상이 아니라 실제 NEXPA 서버 Credential/Infrastructure가 필요합니다.
|
|
- NEXPA Core OIDC Metadata / Client ID / Secret
|
|
- PostgreSQL 운영 Credential
|
|
- MinIO 운영 Credential
|
|
- ClamAV 운영 Container 연결 확인
|
|
- Gitea URL / Token / Repository Binding
|
|
- 실제 CI/CD Webhook URL / Secret
|
|
- TLS certificate / Nginx 적용
|
|
|
|
이 값이 채워지기 전에는 `/api/system/status`가 `production_ready=false`를 반환합니다.
|