chore: 조회 엔드포인트 공개화, write 만 키 필요 #49
No reviewers
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!49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/public-read-api"
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?
Summary
read 엔드포인트는 전부 공개, write 만
X-API-Key + write 스코프로 보호. FRED/SEC/FINRA 기반 퍼블릭 데이터라 공개에 문제 없고, Streamlit 배포 흐름의 복잡도 대폭 감소.main.py에서_AUTH_DEPS제거 (9개 라우터 전부 평문으로)require_scope("write")가 담당 → 없으면 401, 스코프 부족이면 403utils/api.py에서DEFAULT_READ_API_KEY폴백 제거docker-compose.yml/.env.example에서 관련 env 삭제README.md'API 인증' 섹션 재작성, curl 예시 read/write 분리, Cloudflare 와일드카드 전제 반영test_public_read.py): AUTH_DISABLED 를 0 으로 덮어 실 인증 플로우 재현Test plan
_AUTH_DEPS복구 시 빨간불을 보장태그 찍기 전에 병합해서 #44 배포 플로우에서 read-only 키 발급 단계를 제거.
라우터 전역 `_AUTH_DEPS = [Depends(require_api_key)]` 를 제거. 이제 조회 엔드포인트는 키 없이 공개, write 는 개별 엔드포인트에 이미 붙은 `require_scope("write")` 가 내부적으로 require_api_key 를 호출해 401/403. 이 플랫폼이 FRED/SEC/FINRA 같은 퍼블릭 소스를 가공한 데이터라 read 공개에 법적·윤리적 문제 없음. Streamlit 컨테이너의 read 폴백 키 복잡도를 제거해 배포 플로우가 깨끗해진다. 정리 ---- - `main.py` — `_AUTH_DEPS` 삭제. 라우터 9개 전부 깨끗하게 include. `require_api_key` import 도 제거. - `frontend/streamlit/utils/api.py` — `_api_key()` 가 더 이상 `DEFAULT_READ_API_KEY` 를 참조하지 않음. 사이드바 입력 설명도 "write 전용" 으로 명시. - `docker-compose.yml` — streamlit 서비스의 `DEFAULT_READ_API_KEY` env 제거. - `.env.example` — `DEFAULT_READ_API_KEY` 섹션 삭제. - `README.md` — "API 인증" 섹션 재작성 (read 공개 / write 키). curl 예시 read/write 로 분리. Streamlit 배포 섹션에서 read-only 키 발급 절차 제거. Cloudflare 와일드카드 라우팅 전제 반영. - `tests/api/test_public_read.py` 신규 회귀 테스트 5건: read 공개 / write 401 / admin 401 / public routes 항상 오픈. API_AUTH_DISABLED=0 을 monkeypatch 로 설정해 실 인증 플로우 재현. 85 tests pass (80 → 85). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>