Marketplace · Admin
어드민 콘솔 — 단일 페이지 4 탭
AdminPage.tsx 한 페이지 안에 Catalog · Approvals · Manage · API Keys 4 탭. 모든 admin 작업은 role guard <RequireRole role='admin'> 뒤에서 수행되고, 별도 ‘users’ 페이지는 없습니다. 통계는 /telemetry/summary + /dlp/stats 가 담당. 이 페이지가 가리키는 파일 경로는 모두 marketplace 서버 저장소의 것으로, 호스트 앱 저장소에는 없습니다.
admin이 직접 카탈로그를 검색 / 업로드 트리거 (web/src/pages/AdminPage.tsx useCatalog + apiRequest).
감사 로그
AuditLog 단일 테이블 (models.py) 이 모든 admin 액션을 기록. 별도 UI 가 없고 직접 query 필요 시 DB 또는 alembic 마이그레이션 export 통해.
API Key 보안
ApiKey 는 raw key를 저장하지 않고 sha256 hash + key_prefix 만 DB 에 보관 (
models.py). verification: secrets.compare_digest (security.py). 회수 + 만료 + rotation grace 지원.