@gaonjs/config 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ConnectionConfig } from '@gaonjs/data';
2
- import type { SecurityOptions } from '@gaonjs/web';
2
+ import type { SecurityOptions, ClientIpConfig } from '@gaonjs/web';
3
3
  import type { AuthOptions, JwtAuthOptions } from '@gaonjs/web';
4
4
  /**
5
5
  * DB 커넥션 맵 — 키는 커넥션 이름(§4.5), 값은 어댑터 설정. `main` 은 관례
@@ -81,6 +81,13 @@ export interface WebConfig {
81
81
  * 것은 반드시 명시적으로. 예: 프록시/로드밸런서 뒤에서 rate limit 을 재조정.
82
82
  */
83
83
  readonly security?: SecurityOptions;
84
+ /**
85
+ * 클라이언트 IP 산출 정책(결정 120). 생략 시 `'direct'`(소켓 피어 · 헤더 무시).
86
+ * 프록시·로드밸런서·Cloudflare 뒤에 배치하면 반드시 선언해야 rate limit(기본
87
+ * 켬 · IP 기준)·로깅·`this.request.ip` 가 실제 클라이언트 IP 를 본다.
88
+ * `{ proxy: 1 }`(신뢰 홉 수) · `{ header: 'cf-connecting-ip' }`(신뢰 헤더).
89
+ */
90
+ readonly clientIp?: ClientIpConfig;
84
91
  }
85
92
  /** 루트 설정 — gaon.config.ts 의 defineConfig 인자. */
86
93
  export interface GaonConfig {
package/dist/wire.js CHANGED
@@ -140,6 +140,8 @@ export async function wireGaon(config, cwd = process.cwd()) {
140
140
  cookieSecret: config.web?.cookieSecret,
141
141
  // 보안 기본값 조정(생략 시 코어 기본값 전부 켬 · CLAUDE.md 규칙 8).
142
142
  security: config.web?.security,
143
+ // 클라이언트 IP 정책(결정 120 · 생략 시 'direct'). 프록시 뒤 배치면 선언.
144
+ clientIp: config.web?.clientIp,
143
145
  realtime: nats ? { nats, hubAddr: config.hub?.addr, heartbeatMs: config.hub?.heartbeatMs } : undefined,
144
146
  };
145
147
  const app = await createApp(opts);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaonjs/config",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "Gaon 루트 설정 로더·자동 배선 (gaon.config.ts · §3.3 · M9-A)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -25,13 +25,13 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "ioredis": "^5.4.1",
28
- "@gaonjs/async": "0.6.1",
29
- "@gaonjs/mail": "0.1.3",
28
+ "@gaonjs/data": "0.13.1",
30
29
  "@gaonjs/core": "0.2.1",
31
- "@gaonjs/data": "0.12.0",
32
- "@gaonjs/i18n": "0.1.2",
33
30
  "@gaonjs/storage": "0.1.2",
34
- "@gaonjs/web": "0.9.0"
31
+ "@gaonjs/mail": "0.1.3",
32
+ "@gaonjs/async": "0.6.1",
33
+ "@gaonjs/i18n": "0.1.2",
34
+ "@gaonjs/web": "0.10.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "fastify": "^5.0.0"