Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/main/resources/application-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ spring:
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
# Supabase 커넥션 풀러(session mode)는 클라이언트 15개 한도. 리비전 무중단 교체 시
# 구/신 리비전이 잠깐 공존하므로 리비전당 커넥션을 낮게 잡아 한도를 넘지 않게 한다.
# (기본값은 max=idle=10 → 리비전 2개면 20 > 15 로 EMAXCONNSESSION 발생.)
# 상세: docs/가이드/azure/배포.md, docs/02-아키텍처/기술스택.md.
hikari:
maximum-pool-size: 5
minimum-idle: 1

# API 문서(OpenAPI/Swagger UI)는 운영에서 비활성 — 공개 엔드포인트 정보노출 최소화(local 에선 활성).
springdoc:
Expand Down
9 changes: 6 additions & 3 deletions src/main/resources/db/migration/V11__enable_rls.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
-- 데이터 접근은 전부 Spring 서버(테이블 owner role = RLS 우회) 경유이고, client 는 public
-- 테이블을 Supabase REST 로 직접 읽지 않으므로 정책(policy)은 두지 않는다(= anon 전면 차단).
--
-- 멱등: ENABLE ROW LEVEL SECURITY 는 이미 켜진 테이블엔 no-op 이라 운영 DB(수동 활성화됨)와
-- 충돌하지 않는다. 테스트는 @DataJpaTest(H2)+ddl-auto 로 돌아 이 마이그레이션을 실행하지 않는다.
-- 테스트는 @DataJpaTest(H2)+ddl-auto 로 돌아 이 마이그레이션을 실행하지 않는다.
--
-- 컨벤션: 앞으로 새 public 테이블을 만드는 마이그레이션은 RLS 활성화를 함께 포함한다(ADR-0027).
--
-- 주의: Flyway 내부 테이블(flyway_schema_history)에는 여기서 RLS 를 걸지 않는다. 마이그레이션
-- 도중 Flyway 가 그 테이블을 잠그고 있어, 같은 테이블에 ACCESS EXCLUSIVE 가 필요한 ENABLE RLS
-- 를 걸면 자기 자신과 락 충돌로 무한 대기한다(fresh DB 에서 부팅 멈춤). 이력 테이블 노출 차단이
-- 필요하면 Flyway 밖(수동/별도 경로)에서 적용한다.

ALTER TABLE public.tasks ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.events ENABLE ROW LEVEL SECURITY;
Expand All @@ -18,4 +22,3 @@ ALTER TABLE public.calendar_connections ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.external_events ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.time_debts ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.users ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.flyway_schema_history ENABLE ROW LEVEL SECURITY;
Loading