itsm_ysm/mobile/constants/Config.ts
itms-merge-dev efc3e66635 feat(itms): 모바일 앱 신규 (Expo, 12화면, OAuth password grant)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:10:46 +09:00

27 lines
1.4 KiB
TypeScript

import Constants from 'expo-constants'
/*
* ITMS 백엔드 base URL + OAuth2 클라이언트 등록 식별자.
* 빌드 프로파일별 주입: app.config.js → extra.* (ITMS_ENV=dev|prod).
* dev → https://itms.zioinfo.co.kr
* prod → https://itms.wise.ai.kr
* 미주입 시 dev 폴백. 내부 IP 하드코딩 금지 — extra 경유(공개 도메인만).
*
* ★인프라 전제(리버스 프록시): 현재 vhost 는 front(:11020)만 노출한다.
* 모바일은 OAuth2 토큰(:11000)과 REST API(:11010)를 직접 호출하므로
* nginx 에 /oauth/ → :11000, 업무경로(/srm,/rem,/bbs,/cmm,/sta,/sys,/potl,/main)
* → :11010 프록시 블록이 활성화되어야 실동작한다. (배포팀 선결 항목)
*/
const extra = (Constants.expoConfig?.extra ?? {}) as Record<string, string | undefined>
export const API_BASE = extra.itmsApiUrl ?? 'https://itms.zioinfo.co.kr'
export const ITMS_ENV = extra.itmsEnv ?? 'dev'
/*
* OAuth2 password grant 클라이언트 등록값 — 인가서버(auth) 인메모리 클라이언트와 1:1.
* 이는 사용자/서버 자격증명이나 AES 암호문이 아니라, 공개 OAuth2 client 식별자다
* (auth Oauth2AuthorizationConfig 에 동일 리터럴 존재). 앱 동작 필수값이며 extra 로 오버라이드 가능.
*/
export const OAUTH_CLIENT_ID = extra.itmsOauthClientId ?? 'clientId'
export const OAUTH_CLIENT_SECRET = extra.itmsOauthClientSecret ?? 'secretKey'