"""공개 설정 엔드포인트 이 엔드포인트의 scope: - 민감정보 없는, 프론트 동작에 필수인 최소 공개 설정만 제공. - 임의의 서버 설정을 프론트에 노출하는 범용 창구가 아님. - 필드 추가 시 "민감정보 여부 + 프론트 필수 여부" 2가지 기준 통과 필요. """ from fastapi import APIRouter from pydantic import BaseModel from core.config import settings router = APIRouter() class UploadPublicConfig(BaseModel): max_bytes: int class PublicConfigResponse(BaseModel): upload: UploadPublicConfig @router.get("/public", response_model=PublicConfigResponse) async def get_public_config() -> PublicConfigResponse: """프론트가 초기 로드 시 조회하는 공개 설정. 현재 제공: upload.max_bytes (업로드 pre-check UX 용도). slack_ratio, stream_chunk_bytes 등 서버 내부 정책은 노출하지 않음. """ return PublicConfigResponse( upload=UploadPublicConfig(max_bytes=settings.upload.max_bytes), )