chore: initial deploy bundle
This commit is contained in:
@@ -9,23 +9,16 @@ const p = process.env;
|
||||
|
||||
export let env = {
|
||||
db: {
|
||||
host: p.DB_HOST || 'localhost',
|
||||
host: p.DB_HOST || '',
|
||||
port: parseInt(p.DB_PORT || '5432'),
|
||||
user: p.DB_USER || 'postgres',
|
||||
password: p.DB_PASSWORD || 'postgres',
|
||||
name: p.DB_NAME || 'cryptowallet_v2',
|
||||
poolSize: parseInt(p.DATABASE_POOL_SIZE || '10'),
|
||||
maxOverflow: parseInt(p.DATABASE_MAX_OVERFLOW || '20'),
|
||||
poolTimeout: parseInt(p.DATABASE_POOL_TIMEOUT || '30'),
|
||||
poolRecycle: parseInt(p.DATABASE_POOL_RECYCLE || '3600'),
|
||||
echo: p.DATABASE_ECHO === 'true',
|
||||
user: p.DB_USER || '',
|
||||
password: p.DB_PASSWORD || '',
|
||||
name: p.DB_NAME || '',
|
||||
},
|
||||
jwt: {
|
||||
algorithm: p.JWT_ALGORITHM || 'RS256',
|
||||
issuer: p.JWT_ISSUER || 'auth-service',
|
||||
audience: p.JWT_AUDIENCE || 'bitforce',
|
||||
accessTtl: parseInt(p.JWT_ACCESS_TTL_SECONDS || '900'),
|
||||
refreshTtl: parseInt(p.JWT_REFRESH_TTL_SECONDS || '2592000'),
|
||||
audience: p.JWT_AUDIENCE || 'elcsa',
|
||||
},
|
||||
vault: {
|
||||
addr: p.VAULT_ADDR || '',
|
||||
@@ -35,43 +28,13 @@ export let env = {
|
||||
secretPath: p.VAULT_SECRET_PATH || 'database',
|
||||
jwtKidPath: p.VAULT_JWT_KID_PATH || 'jwt/kid',
|
||||
jwtKidsPrefix: p.VAULT_JWT_KIDS_PREFIX || 'jwt/kids',
|
||||
},
|
||||
csrf: {
|
||||
cookieSecure: p.CSRF_COOKIE_SECURE === 'true',
|
||||
cookieHttpOnly: p.CSRF_COOKIE_HTTPONLY !== 'false',
|
||||
cookieSameSite: p.CSRF_COOKIE_SAMESITE || 'Lax',
|
||||
cookiePath: p.CSRF_COOKIE_PATH || '/',
|
||||
cookieDomain: p.CSRF_COOKIE_DOMAIN || '',
|
||||
},
|
||||
docs: {
|
||||
username: p.DOCS_USERNAME || 'admin',
|
||||
password: p.DOCS_PASSWORD || 'admin',
|
||||
},
|
||||
redis: {
|
||||
host: p.REDIS_HOST || 'keydb',
|
||||
port: parseInt(p.REDIS_PORT || '6379'),
|
||||
password: p.REDIS_PASSWORD || 'keydb',
|
||||
db: parseInt(p.REDIS_DB || '0'),
|
||||
},
|
||||
rabbit: {
|
||||
emailCodeQueue: p.RABBIT_EMAIL_CODE_QUEUE || 'email.verification_code',
|
||||
publishPersist: p.RABBIT_PUBLISH_PERSIST !== 'false',
|
||||
connectTimeout: parseInt(p.RABBIT_CONNECT_TIMEOUT || '5'),
|
||||
},
|
||||
log: {
|
||||
level: p.LOG_LEVEL || 'INFO',
|
||||
format: p.LOG_FORMAT || 'JSON',
|
||||
csrfPath: p.VAULT_CSRF_PATH || 'csrf',
|
||||
},
|
||||
cors: {
|
||||
origins: (p.CORS_ORIGINS || 'http://localhost:3000').split(','),
|
||||
allowCredentials: p.CORS_ALLOW_CREDENTIALS !== 'false',
|
||||
},
|
||||
rateLimit: {
|
||||
requests: parseInt(p.RATE_LIMIT_REQUESTS || '60'),
|
||||
window: parseInt(p.RATE_LIMIT_WINDOW || '60'),
|
||||
},
|
||||
port: parseInt(p.API_PORT || '3001'),
|
||||
frontendUrl: p.FRONTEND_URL || 'http://localhost:3000',
|
||||
relayApiKey: p.RELAY_API_KEY || null,
|
||||
tronApiKey: p.TRON_API_KEY || null,
|
||||
jupiterApiKey: p.JUPITER_API_KEY || null,
|
||||
@@ -116,41 +79,26 @@ export async function initEnv(): Promise<void> {
|
||||
return v ? parseInt(v) : fallback;
|
||||
};
|
||||
|
||||
// Vault stores DB secrets in lowercase (host, user, password, name, port).
|
||||
// Accept uppercase DB_* as fallback for compatibility.
|
||||
env = {
|
||||
...env,
|
||||
db: {
|
||||
host: s('DB_HOST') || env.db.host,
|
||||
port: si('DB_PORT', env.db.port),
|
||||
user: s('DB_USER') || env.db.user,
|
||||
password: s('DB_PASSWORD') || env.db.password,
|
||||
name: s('DB_NAME') || env.db.name,
|
||||
poolSize: si('DATABASE_POOL_SIZE', env.db.poolSize),
|
||||
maxOverflow: si('DATABASE_MAX_OVERFLOW', env.db.maxOverflow),
|
||||
poolTimeout: si('DATABASE_POOL_TIMEOUT', env.db.poolTimeout),
|
||||
poolRecycle: si('DATABASE_POOL_RECYCLE', env.db.poolRecycle),
|
||||
echo: secrets['DATABASE_ECHO'] === 'true',
|
||||
host: s('host') || s('DB_HOST') || env.db.host,
|
||||
port: si('port', si('DB_PORT', env.db.port)),
|
||||
user: s('user') || s('DB_USER') || env.db.user,
|
||||
password: s('password') || s('DB_PASSWORD') || env.db.password,
|
||||
name: s('name') || s('DB_NAME') || env.db.name,
|
||||
},
|
||||
jwt: {
|
||||
...env.jwt,
|
||||
issuer: s('JWT_ISSUER') || env.jwt.issuer,
|
||||
audience: s('JWT_AUDIENCE') || env.jwt.audience,
|
||||
accessTtl: si('JWT_ACCESS_TTL_SECONDS', env.jwt.accessTtl),
|
||||
refreshTtl: si('JWT_REFRESH_TTL_SECONDS', env.jwt.refreshTtl),
|
||||
},
|
||||
redis: {
|
||||
host: s('REDIS_HOST') || env.redis.host,
|
||||
port: si('REDIS_PORT', env.redis.port),
|
||||
password: s('REDIS_PASSWORD') || env.redis.password,
|
||||
db: si('REDIS_DB', env.redis.db),
|
||||
},
|
||||
cors: {
|
||||
origins: s('CORS_ORIGINS') ? s('CORS_ORIGINS')!.split(',') : env.cors.origins,
|
||||
allowCredentials: secrets['CORS_ALLOW_CREDENTIALS'] !== 'false',
|
||||
},
|
||||
rateLimit: {
|
||||
requests: si('RATE_LIMIT_REQUESTS', env.rateLimit.requests),
|
||||
window: si('RATE_LIMIT_WINDOW', env.rateLimit.window),
|
||||
},
|
||||
relayApiKey: s('RELAY_API_KEY') || env.relayApiKey,
|
||||
tronApiKey: s('TRON_API_KEY') || env.tronApiKey,
|
||||
jupiterApiKey: s('JUPITER_API_KEY') || env.jupiterApiKey,
|
||||
|
||||
Reference in New Issue
Block a user