회원과 곡 보관함 기능을 추가한다

회원 가입과 로그인 및 등급별 접근과 공개 범위를 구현했다.`nMIDI 업로드와 검색 및 같은 곡의 버전 묶음을 추가했다.`n비밀번호 변경과 회원 탈퇴 및 관리자 회원 관리를 포함했다.`n직접 만든 공개 샘플 MIDI 네 곡과 운영 문서를 추가했다.
This commit is contained in:
이창현
2026-10-03 10:12:17 +09:00
parent e7acd97798
commit a41da4029f
16 changed files with 1779 additions and 5 deletions
+7 -4
View File
@@ -33,7 +33,8 @@ except ImportError:
from fastapi import Depends, FastAPI, HTTPException, Request, Response, Security
from fastapi.middleware.cors import CORSMiddleware
from fastapi.security import APIKeyHeader
from routers import export_routes, fingering, omr, transcribe, youtube
from library_db import initialize_database
from routers import export_routes, fingering, library, omr, transcribe, youtube
logging.basicConfig(level=logging.WARNING)
@@ -106,6 +107,7 @@ def _startup_checks() -> None:
@asynccontextmanager
async def _lifespan(_app: FastAPI):
_startup_checks()
initialize_database()
yield
@@ -131,9 +133,9 @@ _allowed_origins = [o.strip() for o in _raw_origins.split(",") if o.strip()]
app.add_middleware(
CORSMiddleware,
allow_origins=_allowed_origins,
allow_credentials=False,
allow_methods=["GET", "POST"],
allow_headers=["Content-Type", "X-API-Key"],
allow_credentials=True,
allow_methods=["GET", "POST", "PATCH", "DELETE"],
allow_headers=["Content-Type", "X-API-Key", "X-CSRF-Token"],
)
# ── Security-headers middleware ───────────────────────────────────────────────
@@ -266,6 +268,7 @@ app.include_router(omr.router, prefix="/omr", tags=["omr"])
app.include_router(youtube.router, prefix="/youtube", tags=["youtube"])
app.include_router(fingering.router, prefix="/fingering", tags=["fingering"])
app.include_router(export_routes.router, prefix="/export", tags=["export"])
app.include_router(library.router, prefix="/library", tags=["library"])
@app.get("/health")