본문으로 건너뛰기

v0.13.1 — 설치 / 배포 L1 복구 + 보안 패치

패치 릴리스입니다: 새 기능도, 스키마 변경도 없습니다. 부팅에 실패할 수 있던 역할 분리(L1) 신규 설치·배포를 고치고 보안 버전 범프를 반영합니다. 전체 머신 리더블 체인지로그는 CHANGELOG.md에 있습니다.

주요 변경 사항

L1(역할 분리) 신규 설치·배포가 이제 부팅됩니다

install.sh가 프로비저닝하는 역할 분리 스택을 처음부터 세울 때 부팅을 막던 버그 여러 건이 확인·수정됐습니다. L1 스택(POSTGRES_APP_PASSWORD를 설정한 운영자)에만 영향이 있었고 기존 단일 역할 배포는 무관합니다 — 릴리스 게이트가 프로덕션 compose 파일을 처음부터 부팅해 보고서야 드러난 이유입니다.

  • trustedoss_app 역할이 생성되지 않던 문제. scripts/postgres-init.sh가 역할 이름·비밀번호를 달러 인용 DO $$ … $$ 블록 에서 치환하려 했는데, psql은 그 안에서 변수 치환을 하지 않습니다 — 리터럴 :'app_user'가 서버에 도달해 초기화 스크립트가 중단됐고, 이후 모든 L1 backend가 trustedoss_app 비밀번호 인증에 실패했습니다. 역할 생성은 이제 SELECT format(…) … \gexecWHERE NOT EXISTS(SQL 인용, 멱등)를 사용합니다.
  • AUTO_MIGRATE가 컨테이너에 전달되지 않던 문제. install.sh는 L1 스택에 AUTO_MIGRATE=false를 기록하지만(마이그레이션은 owner 역할로 1회 실행), compose 파일이 ${AUTO_MIGRATE}를 참조하지 않아 backend 엔트리포인트가 기본값 true로 되돌아가 무권한 app 역할로 DDL을 시도했습니다. 이제 값이 끝까지 전달됩니다.
  • owner 비밀번호 일관성 + 단계적 부팅. 설치 시크릿 블록이 멱등이 됐고 (POSTGRES_PASSWORD가 owner 비밀번호의 단일 진실, 재실행 시 회전 없음), 부팅이 단계화됐습니다(postgres+redis+backend → /health 대기 → owner 역할 alembic upgrade head/health/ready 대기 → 전체 기동). 워커의 depends_on backend: service_healthyAUTO_MIGRATE=false에서 더는 교착하지 않습니다.
  • dev backend 이미지가 자동 마이그레이션을 실행합니다. dev 이미지 (Dockerfile)에 CMD만 있고 ENTRYPOINT가 없어 docker-entrypoint.sh를 거치지 않았고 마이그레이션이 실행되지 않아 — /health/ready가 503에 머물러 backend가 영구 unhealthy였습니다. 이제 프로덕션 이미지처럼 엔트리포인트를 갖습니다.

보안

  • python-multipart 0.0.30 → 0.0.31 — CVE-2026-53540 수정 반영. backend 이미지에 포함됩니다.

업그레이드 안내

  • 조치 필요 없음, 마이그레이션 없음. 수정 전용 패치이며 스키마는 v0.13.0과 같습니다.
  • L1 신규 설치는 v0.13.1을 사용하십시오. v0.13.0으로 역할 분리 설치를 처음부터 수행하면 trustedoss_app 프로비저닝 실패나 부팅 교착이 발생할 수 있었습니다 — 둘 다 여기서 수정됐습니다. 이미 실행 중인 v0.13.0 스택은 영향이 없습니다.
  • 0.13.1 이미지를 받거나 0.13.1 이미지 태그로 helm upgrade 하십시오.