API 키 관리 UI — /api/admin/keys + Streamlit 페이지 #46
Labels
No labels
api
bug
chore
collector
decision-needed
docs
enhancement
feature
feedback-loop
frontend
infra
skill
test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
xhh/financial-data-platform#46
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
CLI (
scripts/apikey.py) 를 건드리지 않고 브라우저에서 API 키를 발급/폐기/회전할 수 있게 한다.scripts/apikey.py의 기존 로직을 REST 엔드포인트로 노출하고, Streamlit 운영 대시보드에 전용 페이지 추가.왜
docker compose exec api python scripts/apikey.py ...를 치는 게 번거로움admin-xhhwrite 키 1장만 부트스트랩으로 CLI 발급하면 이후 모든 키 관리는 UI 로범위
1) 신규 엔드포인트:
/api/admin/keys/*전부
require_scope("write")로 보호./api/admin/keys/api/admin/keys?include_revoked=true/api/admin/keys/api/admin/keys/{name}revoked_at세움)/api/admin/keys/{name}/rotate2) Streamlit 페이지
7_API_Keys.pyname입력 +read/write체크박스 → 제출 시 원문 키를 큰 코드블록으로 1회 표시폐기/회전버튼st.session_state에 보관 (재실행 시 재표시)3) Tailscale 게이트 유틸 (#44 와 공유)
frontend/streamlit/utils/tailscale_probe.py100.100.100.100프로브 후st.session_state["tailscale_on"]설정ADMIN_FORCE_ON=1환경변수로 로컬 개발 시 강제 admin 모드 (CI/로컬 테스트용)부트스트랩 문제
첫 write 키는 여전히 CLI (
scripts/apikey.py create --scopes write) 로 발급. 이후 관리는 UI.보안
revoked_at). 물리 삭제 안 함.구현 순서
api/routers/admin.py+api/schemas/admin.py+main.py등록 + 단위 테스트frontend/streamlit/utils/tailscale_probe.py유틸 (#44 선행 구현)pages/7_API_Keys.pypages/6_Manual_Trigger.py도 새 게이트 재사용하도록 리팩터완료 기준
ADMIN_FORCE_ON=1으로 페이지 전부 동작선행
후행
tailscale_probe.py를 그대로 쓴다