| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- * Relay 配置加载
- */
- export function getPort(): number {
- return process.env.PORT ? parseInt(process.env.PORT, 10) : 4000;
- }
- export function getDbPath(): string {
- return process.env.DB_PATH || './data/relay.db';
- }
- export function getAdminKey(): string {
- return process.env.ADMIN_KEY || '';
- }
- /** Shared secret configured once on the upstream token-wide callback. */
- export function getUpstreamCallbackSecret(): string {
- return process.env.UPSTREAM_CALLBACK_SECRET || '';
- }
- export function getLogLevel(): string {
- return process.env.LOG_LEVEL || 'info';
- }
- export function getEventTtlSeconds(): number {
- return process.env.EVENT_TTL_SECONDS ? parseInt(process.env.EVENT_TTL_SECONDS, 10) : 604800;
- }
- export function getMaxPendingEventsPerTenant(): number {
- return process.env.MAX_PENDING_EVENTS_PER_TENANT
- ? parseInt(process.env.MAX_PENDING_EVENTS_PER_TENANT, 10)
- : 5000;
- }
- export function getPollBatchSize(): number {
- return process.env.POLL_BATCH_SIZE ? parseInt(process.env.POLL_BATCH_SIZE, 10) : 100;
- }
- export function getPollWaitMs(): number {
- return process.env.POLL_WAIT_MS ? parseInt(process.env.POLL_WAIT_MS, 10) : 30000;
- }
- /** Relay 对外公网地址(注册接口返回给客户端) */
- export function getRelayPublicUrl(): string {
- return (
- process.env.RELAY_PUBLIC_URL ||
- `http://${process.env.HOST || '8.138.37.248'}:${getPort()}`
- );
- }
- /** Fmode 网关地址,用于校验用户 token */
- export function getFmodeGatewayUrl(): string {
- return (process.env.FMODE_GATEWAY_URL || 'https://server.fmode.cn/api/qiwei').replace(/\/$/, '');
- }
- /** 校验 Fmode token 时调用的 doApi method(默认用 /user/getProfile) */
- export function getFmodeTokenValidateMethod(): string {
- return process.env.FMODE_TOKEN_VALIDATE_METHOD || '/user/getProfile';
- }
- /** 注册接口 IP 限流窗口(秒),默认 60 秒 */
- export function getRegisterRateLimitSeconds(): number {
- return process.env.REGISTER_RATE_LIMIT_SECONDS
- ? parseInt(process.env.REGISTER_RATE_LIMIT_SECONDS, 10)
- : 60;
- }
- /** 注册接口单个 IP 在窗口内最多允许次数 */
- export function getRegisterRateLimitPerIp(): number {
- return process.env.REGISTER_RATE_LIMIT_PER_IP
- ? parseInt(process.env.REGISTER_RATE_LIMIT_PER_IP, 10)
- : 5;
- }
- /** 单个 Fmode 用户在窗口内最多注册次数(通常 =1) */
- export function getRegisterRateLimitPerUser(): number {
- return process.env.REGISTER_RATE_LIMIT_PER_USER
- ? parseInt(process.env.REGISTER_RATE_LIMIT_PER_USER, 10)
- : 1;
- }
|