fix(gateway): 전용 데이터베이스 URL을 우선 사용한다
릴리스 프로세스가 전달한 GATEWAY_DATABASE_URL을 API와 orchestrator가 직접 사용하도록 고친다. 원시 POSTGRES_* 재조합으로 특수문자 비밀번호가 깨지는 회귀를 테스트한다.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import { resolvePostgresConfigFromEnv, type PostgresConfig } from '@sammo-ts/infra';
|
||||
|
||||
export const resolveGatewayPostgresConfigFromEnv = (
|
||||
env: NodeJS.ProcessEnv = process.env,
|
||||
schema?: string
|
||||
): PostgresConfig => {
|
||||
const gatewayDatabaseUrl = env.GATEWAY_DATABASE_URL?.trim();
|
||||
return resolvePostgresConfigFromEnv({
|
||||
env: gatewayDatabaseUrl
|
||||
? {
|
||||
...env,
|
||||
DATABASE_URL: gatewayDatabaseUrl,
|
||||
}
|
||||
: env,
|
||||
schema,
|
||||
});
|
||||
};
|
||||
@@ -3,6 +3,7 @@ import { runGatewayOrchestrator } from './orchestrator/orchestratorServer.js';
|
||||
import { runProfileSeedCli } from './orchestrator/profileSeedCli.js';
|
||||
|
||||
export * from './config.js';
|
||||
export * from './gatewayPostgresConfig.js';
|
||||
export * from './context.js';
|
||||
export * from './router.js';
|
||||
export * from './server.js';
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import {
|
||||
createGatewayPostgresConnector,
|
||||
type GatewayPrismaClient,
|
||||
resolvePostgresConfigFromEnv,
|
||||
} from '@sammo-ts/infra';
|
||||
|
||||
import { resolveGatewayOrchestratorConfigFromEnv } from '../config.js';
|
||||
import { resolveGatewayPostgresConfigFromEnv } from '../gatewayPostgresConfig.js';
|
||||
import { createGatewayOrchestrator } from './orchestratorFactory.js';
|
||||
import { installGatewayShutdownController } from '../lifecycle/shutdownController.js';
|
||||
|
||||
export const runGatewayOrchestrator = async (): Promise<void> => {
|
||||
const config = resolveGatewayOrchestratorConfigFromEnv();
|
||||
const postgres = createGatewayPostgresConnector(resolvePostgresConfigFromEnv({ schema: config.dbSchema }));
|
||||
const postgres = createGatewayPostgresConnector(resolveGatewayPostgresConfigFromEnv(process.env, config.dbSchema));
|
||||
await postgres.connect();
|
||||
|
||||
const { orchestrator } = createGatewayOrchestrator(postgres.prisma as GatewayPrismaClient, config, process.env);
|
||||
|
||||
@@ -9,11 +9,11 @@ import {
|
||||
createGatewayPostgresConnector,
|
||||
createRedisConnector,
|
||||
type GatewayPrismaClient,
|
||||
resolvePostgresConfigFromEnv,
|
||||
resolveRedisConfigFromEnv,
|
||||
} from '@sammo-ts/infra';
|
||||
|
||||
import { resolveGatewayApiConfigFromEnv } from './config.js';
|
||||
import { resolveGatewayPostgresConfigFromEnv } from './gatewayPostgresConfig.js';
|
||||
import { createGatewayApiContext } from './context.js';
|
||||
import { RedisGatewayFlushPublisher } from './auth/flushPublisher.js';
|
||||
import { KakaoOAuthClient } from './auth/kakaoClient.js';
|
||||
@@ -36,7 +36,7 @@ import { registerRuntimeNavigationRoute } from './navigation/runtimeNavigationRo
|
||||
|
||||
export const createGatewayApiServer = async () => {
|
||||
const config = resolveGatewayApiConfigFromEnv();
|
||||
const postgres = createGatewayPostgresConnector(resolvePostgresConfigFromEnv({ schema: config.dbSchema }));
|
||||
const postgres = createGatewayPostgresConnector(resolveGatewayPostgresConfigFromEnv(process.env, config.dbSchema));
|
||||
const redis = createRedisConnector(resolveRedisConfigFromEnv());
|
||||
await postgres.connect();
|
||||
await redis.connect();
|
||||
|
||||
Reference in New Issue
Block a user