Skip to content

Functions 요청에 앱 버전과 build 식별값을 추가한다 #791

Description

@opficdev

배경

Application/Infra/Sources/Service/FunctionAPIClient.swift는 현재 NXClientConfiguration의 공통 header로 Accept만 설정한다.

opficdev/DevLog_Firebase#65의 prod api Gateway가 심사 앱 요청만 apiSuccessor로 전달하려면, 모든 Functions 요청에서 App Store 버전과 build를 함께 식별할 수 있어야 한다.

작업 범위

  • CFBundleShortVersionStringX-DevLog-App-Version으로 전달
  • CFBundleVersionX-DevLog-App-Build로 전달
  • 두 값을 NXClientConfiguration.headers에 추가해 모든 FunctionAPIClient.send 경로에 공통 적용
  • 인증 필요 여부와 관계없이 같은 릴리스 식별값 사용
  • 비어 있거나 해석할 수 없는 값은 빈 header로 보내지 않음
  • 릴리스 식별값 생성 동작에 대한 Infra 단위 테스트 추가

제약

  • (appVersion, appBuild)는 API 라우팅에만 사용하고 인증이나 권한 판단에 사용하지 않음
  • 기존 Firebase ID token 인증 흐름과 FunctionAPIServerErrorDecoder 동작 유지
  • FUNCTION_API_BASE_URLFunctionAPIEndpoint path 변경 없음
  • APP_ENVIRONMENT나 git SHA를 요청 header에 추가하지 않음

완료 조건

  • 모든 Functions 요청에 X-DevLog-App-VersionX-DevLog-App-Build가 포함됨.
  • 인증 요청과 비인증 요청이 동일한 릴리스 식별값을 사용함.
  • 버전 또는 build를 구하지 못하면 잘못된 빈 값을 보내지 않음.
  • 기존 요청 payload, path, 인증 및 오류 변환 동작이 유지됨.
  • 단위 테스트로 header 생성 동작이 확인됨.

제외 범위

  • Firebase Gateway와 apiStable/apiSuccessor 구현
  • App Store 배포 workflow 변경
  • 오전 6시 공개 예약과 API 승격 처리

연관 이슈

  • opficdev/DevLog_Firebase#65

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions