v0의 Snowflake 인증 프록시 도입
생성된 코드가 사용자의 OAuth 토큰을 보지 않도록, v0가 Snowflake 요청을 서버 측 프록시로 인증하도록 바뀌었습니다.
교안에 영향
이전 안내에서 Snowflake 토큰을 sandbox에 직접 두는 방식이나 placeholder를 임의 문자열 치환하는 설명은 더 이상 맞지 않습니다.
요약
- v0 Snowflake integration에 서버 측 Snowflake request proxy를 적용해 생성된 코드가 사용자의 OAuth token을 직접 받지 않게 했습니다. - sandbox 안에는 실제 토큰 대신 고정된 placeholder만 두고, 인증 정보는 요청 시점에 프록시가 주입합니다. - Snowflake SQL API, login 요청, post-login session 요청마다 다른 인증 위치를 사용하도록 처리해 호환성을 유지했습니다. - placeholder가 인증 필드 밖에 나타나면 요청을 거부하고 기록하도록 해 토큰 노출 가능성을 줄였습니다. - publish 경로와 배포 후 Snowpark Container Services 인증도 같은 경계로 정리했습니다.
바뀐 것
새 기능
- v0 Snowflake integration에 Snowflake request proxy를 도입했습니다.
개선
- sandbox 내부에는 실제 OAuth token 대신 고정된 placeholder를 넣어 기존 Snowflake SDK와 CLI 흐름이 동작하도록 했습니다.
- Snowflake SQL API 요청에는 Authorization: Bearer 헤더에만 토큰을 주입하도록 했습니다.
- Snowflake login 요청은 JSON 본문을 구조적으로 파싱해 login token 필드에만 토큰을 설정하도록 했습니다.
- post-login session requests는 Snowflake-managed session token으로 처리해 프록시가 개입하지 않도록 했습니다.
- placeholder가 인증 필드 밖에 있거나 요청을 안전하게 파싱할 수 없으면 실패 처리하도록 바꿨습니다.
- Token refresh를 browser cookie가 아니라 sandbox와 chat의 바인딩을 기준으로 처리하도록 했습니다.
- deploy 이후 애플리케이션은 Snowpark Container Services에서 /snowflake/session/token 을 사용해 자체 service user로 인증하도록 했습니다.
기타
- 프록시 요청마다 upstream outcome, status, duration, injection location을 기록하는 observability event를 추가했습니다.