@fuzionx/framework 0.1.24 → 0.1.26

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.
@@ -1,66 +1,202 @@
1
- # FuzionX Configuration
1
+ # ═══════════════════════════════════════════════
2
+ # fuzionx.yaml — FuzionX 전체 설정 레퍼런스
3
+ # ═══════════════════════════════════════════════
4
+
5
+ # ── Bridge (Rust 엔진) ──────────────────────────
2
6
  bridge:
3
7
  port: 49080
4
- workers: 0
5
- worker_timeout: 30
8
+ workers: 0 # 0 = CPU 코어 수 자동
9
+ worker_timeout: 30 # 워커 요청 타임아웃 (초)
6
10
 
11
+ # ── 보안: CORS ──
7
12
  cors:
8
13
  enabled: false
9
14
  origins:
10
15
  - "*"
11
16
 
17
+ # ── 보안: Rate Limit ──
12
18
  rate_limit:
13
19
  enabled: true
14
- per_ip: 1000
20
+ per_ip: 1000 # IP당 초당 요청 수
21
+
22
+ # ── 보안: HSTS ──
23
+ hsts:
24
+ enabled: false
25
+ max_age: 31536000 # 1년 (초)
26
+
27
+ # ── 보안: CSP ──
28
+ csp:
29
+ enabled: false
30
+ directives:
31
+ - "default-src 'self'"
32
+
33
+ # ── 보안: IP Filter ──
34
+ ip_filter:
35
+ enabled: false
36
+ whitelist: [] # CIDR 형식
37
+ blacklist: []
15
38
 
39
+ # ── 세션 ──
16
40
  session:
17
41
  enabled: false
18
- store: memory
19
- ttl: 3600
42
+ store: memory # memory | redis
43
+ ttl: 3600 # 세션 TTL (초)
20
44
  cookie_name: fuzionx.sid
45
+ # redis_url: "redis://localhost:6379"
46
+
47
+ # ── 국제화 (i18n) ──
48
+ i18n:
49
+ enabled: false
50
+ default_locale: ko
51
+ locale_dir: ./locales
52
+ auto_complete: false
53
+ locales:
54
+ - ko
55
+ - en
21
56
 
57
+ # ── WebSocket ──
22
58
  websocket:
23
59
  enabled: false
24
60
  path: /ws
25
- check_interval: 60
26
- timeout: 60
61
+ check_interval: 60 # 헬스체크 간격 (초)
62
+ timeout: 60 # 타임아웃 (초)
63
+
64
+ # ── Hub (멀티서버 동기화) ──
65
+ hub:
66
+ enabled: false
67
+ url: "ws://127.0.0.1:9100/ws/bridge"
68
+ group: "{{name}}"
27
69
 
70
+ # ── 파일 업로드 ──
71
+ upload:
72
+ dir: /tmp
73
+ max_size: "1gb"
74
+ max_files: 20
75
+ allowed_types:
76
+ - image/jpeg
77
+ - image/png
78
+ - image/webp
79
+ - image/gif
80
+ - video/mp4
81
+ - video/webm
82
+ - application/pdf
83
+ # watermark: ./assets/watermark.png
84
+ # watermark_opacity: 50
85
+
86
+ # ── 정적 파일 ──
28
87
  static:
29
88
  - url: /public
30
89
  path: ./public
31
90
 
91
+ # ── 로깅 ──
32
92
  logging:
33
- level: info
34
- intercept_console: true
93
+ level: info # error | warn | info | debug
94
+ intercept_console: true # console.* 가로채기
95
+ file:
96
+ enabled: false
97
+ path: ./logs/app.log
98
+
99
+ # ── 액세스 로그 ──
100
+ access_log:
101
+ enabled: false
102
+ path: ./logs/access.log
103
+ error_path: ./logs/error.log
104
+
105
+ # ── 트래픽 캡처 ──
106
+ traffic_capture:
107
+ enabled: false
108
+ max_body_size: "64KB"
109
+ exclude_content_types: []
110
+ loki:
111
+ enabled: false
112
+ url: ""
113
+ labels: []
114
+ fields: []
115
+ batch_size: 100
116
+ flush_interval: "2s"
117
+ clickhouse:
118
+ enabled: false
119
+ url: ""
120
+ database: fuzionx
121
+ table: traffic
122
+ format: full # metadata | headers_only | full
123
+ batch_size: 100
124
+ flush_interval: "1s"
125
+
126
+ # ── ASP 암호화 ──
127
+ asp:
128
+ enabled: false
129
+ master_secret: "${ASP_SECRET:change-me-in-production}"
130
+ header_signal: Ruxy-Enc-Mode
35
131
 
132
+ # ── Database ────────────────────────────────────
36
133
  database:
37
134
  default: main
38
135
  connections:
39
136
  main:
40
- driver: sqlite
137
+ driver: sqlite # sqlite | mariadb | postgres | mongodb
41
138
  database: ./storage/database.sqlite
139
+ # host: "127.0.0.1"
140
+ # port: 3306
141
+ # user: root
142
+ # password: ""
143
+ # charset: utf8mb4
144
+ # pool:
145
+ # min: 2
146
+ # max: 10
42
147
 
148
+ # ── App (프레임워크) ────────────────────────────
43
149
  app:
44
150
  name: '{{name}}'
45
- environment: development
151
+ environment: development # development | production
152
+
153
+ asp:
154
+ enabled: false
46
155
 
156
+ # 인증
47
157
  auth:
48
158
  secret: '${JWT_SECRET:change-me-in-production}'
49
159
  accessTtl: '15m'
160
+ # refreshTtl: '7d'
161
+ # bcrypt_rounds: 12
50
162
 
163
+ # 국제화 (프레임워크 편의 설정)
51
164
  i18n:
52
165
  default_locale: 'ko'
53
166
  fallback: 'en'
54
167
 
168
+ # Swagger/OpenAPI
55
169
  docs:
56
170
  enabled: true
57
171
  path: '/docs'
58
172
 
173
+ # 테마
59
174
  themes:
60
175
  default: 'default'
61
176
 
62
- # Multi-App (도메인 → 앱 라우팅)
177
+ # 스토리지
178
+ # storage:
179
+ # driver: local
180
+ # local:
181
+ # path: ./storage
182
+ # url_prefix: /storage
183
+
184
+ # 스케줄러
185
+ # scheduler:
186
+ # enabled: true
187
+ # lock:
188
+ # driver: null # null | redis
189
+ # redis_url: ""
190
+ # prefix: "myapp:lock"
191
+
192
+ # 큐
193
+ # queue:
194
+ # driver: memory # memory | redis
195
+ # redis_url: ""
196
+ # prefix: "myapp:queue"
197
+
198
+ # ── Multi-App (도메인 → 앱 라우팅) ────────────────
63
199
  apps:
64
- "localhost": backend
200
+ "localhost:49080": backend
65
201
  # "admin.example.com": backend
66
202
  # "example.com": frontend
@@ -7,7 +7,7 @@
7
7
  "test": "vitest run"
8
8
  },
9
9
  "dependencies": {
10
- "@fuzionx/framework": "^0.1.0"
10
+ "@fuzionx/framework": "^0.1.26"
11
11
  },
12
12
  "devDependencies": {
13
13
  "vitest": "^3.0.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzionx/framework",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "type": "module",
5
5
  "description": "Full-stack MVC framework built on @fuzionx/core — Controller, Service, Model, Middleware, DI, EventBus",
6
6
  "main": "index.js",
@@ -34,7 +34,7 @@
34
34
  "url": "https://github.com/saytohenry/fuzionx"
35
35
  },
36
36
  "dependencies": {
37
- "@fuzionx/core": "^0.1.24",
37
+ "@fuzionx/core": "^0.1.26",
38
38
  "better-sqlite3": "^12.8.0",
39
39
  "knex": "^3.2.5",
40
40
  "mongoose": "^9.3.2",