create-fluxstack 1.9.1 → 1.12.0

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.
Files changed (259) hide show
  1. package/.dockerignore +1 -2
  2. package/Dockerfile +8 -8
  3. package/LIVE_COMPONENTS_REVIEW.md +781 -0
  4. package/LLMD/INDEX.md +64 -0
  5. package/LLMD/MAINTENANCE.md +197 -0
  6. package/LLMD/MIGRATION.md +156 -0
  7. package/LLMD/config/.gitkeep +1 -0
  8. package/LLMD/config/declarative-system.md +268 -0
  9. package/LLMD/config/environment-vars.md +327 -0
  10. package/LLMD/config/runtime-reload.md +401 -0
  11. package/LLMD/core/.gitkeep +1 -0
  12. package/LLMD/core/build-system.md +599 -0
  13. package/LLMD/core/framework-lifecycle.md +229 -0
  14. package/LLMD/core/plugin-system.md +451 -0
  15. package/LLMD/patterns/.gitkeep +1 -0
  16. package/LLMD/patterns/anti-patterns.md +297 -0
  17. package/LLMD/patterns/project-structure.md +264 -0
  18. package/LLMD/patterns/type-safety.md +440 -0
  19. package/LLMD/reference/.gitkeep +1 -0
  20. package/LLMD/reference/cli-commands.md +250 -0
  21. package/LLMD/reference/plugin-hooks.md +357 -0
  22. package/LLMD/reference/routing.md +39 -0
  23. package/LLMD/reference/troubleshooting.md +364 -0
  24. package/LLMD/resources/.gitkeep +1 -0
  25. package/LLMD/resources/controllers.md +465 -0
  26. package/LLMD/resources/live-components.md +703 -0
  27. package/LLMD/resources/live-rooms.md +482 -0
  28. package/LLMD/resources/live-upload.md +130 -0
  29. package/LLMD/resources/plugins-external.md +617 -0
  30. package/LLMD/resources/routes-eden.md +254 -0
  31. package/README.md +37 -17
  32. package/app/client/index.html +0 -1
  33. package/app/client/src/App.tsx +109 -156
  34. package/app/client/src/components/AppLayout.tsx +68 -0
  35. package/app/client/src/components/BackButton.tsx +13 -0
  36. package/app/client/src/components/DemoPage.tsx +20 -0
  37. package/app/client/src/components/LiveUploadWidget.tsx +204 -0
  38. package/app/client/src/lib/eden-api.ts +85 -65
  39. package/app/client/src/live/ChatDemo.tsx +107 -0
  40. package/app/client/src/live/CounterDemo.tsx +206 -0
  41. package/app/client/src/live/FormDemo.tsx +119 -0
  42. package/app/client/src/live/RoomChatDemo.tsx +242 -0
  43. package/app/client/src/live/UploadDemo.tsx +21 -0
  44. package/app/client/src/main.tsx +13 -10
  45. package/app/client/src/pages/ApiTestPage.tsx +108 -0
  46. package/app/client/src/pages/HomePage.tsx +76 -0
  47. package/app/client/src/vite-env.d.ts +1 -1
  48. package/app/server/app.ts +1 -4
  49. package/app/server/controllers/users.controller.ts +36 -44
  50. package/app/server/index.ts +24 -107
  51. package/app/server/live/LiveChat.ts +77 -0
  52. package/app/server/live/LiveCounter.ts +67 -0
  53. package/app/server/live/LiveForm.ts +63 -0
  54. package/app/server/live/LiveLocalCounter.ts +32 -0
  55. package/app/server/live/LiveRoomChat.ts +285 -0
  56. package/app/server/live/LiveUpload.ts +81 -0
  57. package/app/server/live/register-components.ts +19 -19
  58. package/app/server/routes/index.ts +3 -1
  59. package/app/server/routes/room.routes.ts +117 -0
  60. package/app/server/routes/users.routes.ts +35 -27
  61. package/app/shared/types/index.ts +14 -2
  62. package/config/app.config.ts +2 -62
  63. package/config/client.config.ts +2 -95
  64. package/config/database.config.ts +2 -99
  65. package/config/fluxstack.config.ts +25 -45
  66. package/config/index.ts +57 -38
  67. package/config/monitoring.config.ts +2 -114
  68. package/config/plugins.config.ts +2 -80
  69. package/config/server.config.ts +2 -68
  70. package/config/services.config.ts +2 -130
  71. package/config/system/app.config.ts +29 -0
  72. package/config/system/build.config.ts +49 -0
  73. package/config/system/client.config.ts +68 -0
  74. package/config/system/database.config.ts +17 -0
  75. package/config/system/fluxstack.config.ts +114 -0
  76. package/config/{logger.config.ts → system/logger.config.ts} +3 -1
  77. package/config/system/monitoring.config.ts +114 -0
  78. package/config/system/plugins.config.ts +84 -0
  79. package/config/{runtime.config.ts → system/runtime.config.ts} +1 -1
  80. package/config/system/server.config.ts +68 -0
  81. package/config/system/services.config.ts +46 -0
  82. package/config/{system.config.ts → system/system.config.ts} +1 -1
  83. package/core/build/bundler.ts +4 -1
  84. package/core/build/flux-plugins-generator.ts +325 -325
  85. package/core/build/index.ts +159 -27
  86. package/core/build/live-components-generator.ts +70 -3
  87. package/core/build/optimizer.ts +235 -235
  88. package/core/cli/command-registry.ts +6 -4
  89. package/core/cli/commands/build.ts +79 -0
  90. package/core/cli/commands/create.ts +54 -0
  91. package/core/cli/commands/dev.ts +101 -0
  92. package/core/cli/commands/help.ts +34 -0
  93. package/core/cli/commands/index.ts +34 -0
  94. package/core/cli/commands/make-plugin.ts +90 -0
  95. package/core/cli/commands/plugin-add.ts +197 -0
  96. package/core/cli/commands/plugin-deps.ts +2 -2
  97. package/core/cli/commands/plugin-list.ts +208 -0
  98. package/core/cli/commands/plugin-remove.ts +170 -0
  99. package/core/cli/generators/component.ts +769 -769
  100. package/core/cli/generators/controller.ts +1 -1
  101. package/core/cli/generators/index.ts +146 -146
  102. package/core/cli/generators/interactive.ts +227 -227
  103. package/core/cli/generators/plugin.ts +2 -2
  104. package/core/cli/generators/prompts.ts +82 -82
  105. package/core/cli/generators/route.ts +6 -6
  106. package/core/cli/generators/service.ts +2 -2
  107. package/core/cli/generators/template-engine.ts +4 -3
  108. package/core/cli/generators/types.ts +2 -2
  109. package/core/cli/generators/utils.ts +191 -191
  110. package/core/cli/index.ts +115 -558
  111. package/core/cli/plugin-discovery.ts +2 -2
  112. package/core/client/LiveComponentsProvider.tsx +63 -17
  113. package/core/client/api/eden.ts +183 -0
  114. package/core/client/api/index.ts +11 -0
  115. package/core/client/components/Live.tsx +104 -0
  116. package/core/client/fluxstack.ts +1 -9
  117. package/core/client/hooks/AdaptiveChunkSizer.ts +215 -0
  118. package/core/client/hooks/state-validator.ts +1 -1
  119. package/core/client/hooks/useAuth.ts +48 -48
  120. package/core/client/hooks/useChunkedUpload.ts +170 -69
  121. package/core/client/hooks/useLiveChunkedUpload.ts +87 -0
  122. package/core/client/hooks/useLiveComponent.ts +800 -0
  123. package/core/client/hooks/useLiveUpload.ts +71 -0
  124. package/core/client/hooks/useRoom.ts +409 -0
  125. package/core/client/hooks/useRoomProxy.ts +382 -0
  126. package/core/client/index.ts +18 -51
  127. package/core/client/standalone-entry.ts +8 -0
  128. package/core/client/standalone.ts +74 -53
  129. package/core/client/state/createStore.ts +192 -192
  130. package/core/client/state/index.ts +14 -14
  131. package/core/config/index.ts +70 -291
  132. package/core/config/schema.ts +42 -723
  133. package/core/framework/client.ts +131 -131
  134. package/core/framework/index.ts +7 -7
  135. package/core/framework/server.ts +227 -47
  136. package/core/framework/types.ts +2 -2
  137. package/core/index.ts +23 -4
  138. package/core/live/ComponentRegistry.ts +7 -3
  139. package/core/live/types.ts +77 -0
  140. package/core/plugins/built-in/index.ts +134 -131
  141. package/core/plugins/built-in/live-components/commands/create-live-component.ts +242 -1074
  142. package/core/plugins/built-in/live-components/index.ts +1 -1
  143. package/core/plugins/built-in/monitoring/index.ts +111 -47
  144. package/core/plugins/built-in/static/index.ts +1 -1
  145. package/core/plugins/built-in/swagger/index.ts +68 -265
  146. package/core/plugins/built-in/vite/index.ts +94 -306
  147. package/core/plugins/built-in/vite/vite-dev.ts +82 -0
  148. package/core/plugins/config.ts +9 -7
  149. package/core/plugins/dependency-manager.ts +31 -1
  150. package/core/plugins/discovery.ts +19 -7
  151. package/core/plugins/executor.ts +2 -2
  152. package/core/plugins/index.ts +203 -203
  153. package/core/plugins/manager.ts +27 -39
  154. package/core/plugins/module-resolver.ts +19 -8
  155. package/core/plugins/registry.ts +309 -21
  156. package/core/plugins/types.ts +106 -55
  157. package/core/server/framework.ts +66 -43
  158. package/core/server/index.ts +15 -16
  159. package/core/server/live/ComponentRegistry.ts +91 -75
  160. package/core/server/live/FileUploadManager.ts +41 -31
  161. package/core/server/live/LiveComponentPerformanceMonitor.ts +1 -1
  162. package/core/server/live/LiveRoomManager.ts +261 -0
  163. package/core/server/live/RoomEventBus.ts +234 -0
  164. package/core/server/live/RoomStateManager.ts +172 -0
  165. package/core/server/live/StateSignature.ts +643 -643
  166. package/core/server/live/WebSocketConnectionManager.ts +30 -19
  167. package/core/server/live/auto-generated-components.ts +41 -26
  168. package/core/server/live/index.ts +14 -0
  169. package/core/server/live/websocket-plugin.ts +233 -72
  170. package/core/server/middleware/elysia-helpers.ts +7 -2
  171. package/core/server/middleware/errorHandling.ts +1 -1
  172. package/core/server/middleware/index.ts +31 -31
  173. package/core/server/plugins/database.ts +180 -180
  174. package/core/server/plugins/static-files-plugin.ts +69 -260
  175. package/core/server/plugins/swagger.ts +33 -33
  176. package/core/server/rooms/RoomBroadcaster.ts +357 -0
  177. package/core/server/rooms/RoomSystem.ts +463 -0
  178. package/core/server/rooms/index.ts +13 -0
  179. package/core/server/services/BaseService.ts +1 -1
  180. package/core/server/services/ServiceContainer.ts +1 -1
  181. package/core/server/services/index.ts +8 -8
  182. package/core/templates/create-project.ts +12 -12
  183. package/core/testing/index.ts +9 -9
  184. package/core/testing/setup.ts +73 -73
  185. package/core/types/api.ts +168 -168
  186. package/core/types/build.ts +219 -218
  187. package/core/types/config.ts +56 -26
  188. package/core/types/index.ts +4 -4
  189. package/core/types/plugin.ts +107 -99
  190. package/core/types/types.ts +490 -14
  191. package/core/utils/build-logger.ts +324 -324
  192. package/core/utils/config-schema.ts +480 -480
  193. package/core/utils/env.ts +2 -8
  194. package/core/utils/errors/codes.ts +114 -114
  195. package/core/utils/errors/handlers.ts +36 -1
  196. package/core/utils/errors/index.ts +49 -5
  197. package/core/utils/errors/middleware.ts +113 -113
  198. package/core/utils/helpers.ts +6 -16
  199. package/core/utils/index.ts +17 -17
  200. package/core/utils/logger/colors.ts +114 -114
  201. package/core/utils/logger/config.ts +13 -9
  202. package/core/utils/logger/formatter.ts +82 -82
  203. package/core/utils/logger/group-logger.ts +101 -101
  204. package/core/utils/logger/index.ts +6 -1
  205. package/core/utils/logger/stack-trace.ts +3 -1
  206. package/core/utils/logger/startup-banner.ts +82 -66
  207. package/core/utils/logger/winston-logger.ts +152 -152
  208. package/core/utils/monitoring/index.ts +211 -211
  209. package/core/utils/sync-version.ts +66 -66
  210. package/core/utils/version.ts +1 -1
  211. package/create-fluxstack.ts +8 -7
  212. package/eslint.config.js +23 -23
  213. package/package.json +14 -15
  214. package/plugins/crypto-auth/cli/make-protected-route.command.ts +1 -1
  215. package/plugins/crypto-auth/client/CryptoAuthClient.ts +302 -302
  216. package/plugins/crypto-auth/client/components/index.ts +11 -11
  217. package/plugins/crypto-auth/client/index.ts +11 -11
  218. package/plugins/crypto-auth/config/index.ts +1 -1
  219. package/plugins/crypto-auth/index.ts +4 -4
  220. package/plugins/crypto-auth/package.json +65 -65
  221. package/plugins/crypto-auth/server/AuthMiddleware.ts +1 -1
  222. package/plugins/crypto-auth/server/CryptoAuthService.ts +185 -185
  223. package/plugins/crypto-auth/server/index.ts +21 -21
  224. package/plugins/crypto-auth/server/middlewares/cryptoAuthAdmin.ts +3 -3
  225. package/plugins/crypto-auth/server/middlewares/cryptoAuthOptional.ts +1 -1
  226. package/plugins/crypto-auth/server/middlewares/cryptoAuthPermissions.ts +2 -2
  227. package/plugins/crypto-auth/server/middlewares/cryptoAuthRequired.ts +2 -2
  228. package/plugins/crypto-auth/server/middlewares/helpers.ts +1 -1
  229. package/plugins/crypto-auth/server/middlewares/index.ts +22 -22
  230. package/plugins/crypto-auth/server/middlewares.ts +19 -19
  231. package/tsconfig.api-strict.json +16 -0
  232. package/tsconfig.json +10 -14
  233. package/{app/client/tsconfig.node.json → tsconfig.node.json} +1 -1
  234. package/types/global.d.ts +29 -29
  235. package/types/vitest.d.ts +8 -8
  236. package/vite.config.ts +38 -62
  237. package/vitest.config.live.ts +10 -9
  238. package/vitest.config.ts +29 -17
  239. package/workspace.json +5 -5
  240. package/app/client/README.md +0 -69
  241. package/app/client/SIMPLIFICATION.md +0 -140
  242. package/app/client/frontend-only.ts +0 -12
  243. package/app/client/tsconfig.app.json +0 -44
  244. package/app/client/tsconfig.json +0 -7
  245. package/app/client/zustand-setup.md +0 -65
  246. package/app/server/backend-only.ts +0 -18
  247. package/app/server/live/LiveClockComponent.ts +0 -215
  248. package/app/server/routes/env-test.ts +0 -110
  249. package/core/client/hooks/index.ts +0 -7
  250. package/core/client/hooks/useHybridLiveComponent.ts +0 -631
  251. package/core/client/hooks/useWebSocket.ts +0 -373
  252. package/core/config/env.ts +0 -546
  253. package/core/config/loader.ts +0 -522
  254. package/core/config/runtime-config.ts +0 -327
  255. package/core/config/validator.ts +0 -540
  256. package/core/server/backend-entry.ts +0 -51
  257. package/core/server/standalone.ts +0 -106
  258. package/core/utils/regenerate-files.ts +0 -69
  259. package/fluxstack.config.ts +0 -354
@@ -0,0 +1,327 @@
1
+ # Environment Variables Reference
2
+
3
+ **Version:** 1.11.0 | **Updated:** 2025-02-08
4
+
5
+ ## Quick Facts
6
+
7
+ - All env vars are optional (have defaults)
8
+ - Type casting automatic (strings → numbers/booleans)
9
+ - Validation on startup
10
+ - Defined in `config/system/*.config.ts`
11
+
12
+ ## Application
13
+
14
+ | Variable | Type | Default | Description | Config File |
15
+ |----------|------|---------|-------------|-------------|
16
+ | `APP_NAME` | string | `'fluxstack-app'` | Application name | app.config.ts |
17
+ | `APP_VERSION` | string | `'1.0.0'` | Application version | app.config.ts |
18
+ | `APP_DESCRIPTION` | string | `'A FluxStack application'` | Application description | app.config.ts |
19
+ | `NODE_ENV` | enum | `'development'` | Environment: `development`, `production`, `test` | app.config.ts |
20
+ | `FLUXSTACK_MODE` | enum | `'full-stack'` | Runtime mode: `full-stack`, `backend-only`, `frontend-only` | app.config.ts |
21
+ | `APP_TRUST_PROXY` | boolean | `false` | Trust proxy headers | app.config.ts |
22
+ | `APP_SESSION_SECRET` | string | `''` | Session secret key | app.config.ts |
23
+
24
+ ## Server
25
+
26
+ | Variable | Type | Default | Description | Config File |
27
+ |----------|------|---------|-------------|-------------|
28
+ | `PORT` | number | `3000` | Server port (1-65535) | server.config.ts |
29
+ | `HOST` | string | `'localhost'` | Server host | server.config.ts |
30
+ | `API_PREFIX` | string | `'/api'` | API route prefix (must start with `/`) | server.config.ts |
31
+ | `BACKEND_PORT` | number | `3001` | Backend-only mode port | server.config.ts |
32
+ | `ENABLE_REQUEST_LOGGING` | boolean | `true` | Enable request logging | server.config.ts |
33
+ | `SHOW_SERVER_BANNER` | boolean | `true` | Show startup banner | server.config.ts |
34
+
35
+ ## CORS
36
+
37
+ | Variable | Type | Default | Description | Config File |
38
+ |----------|------|---------|-------------|-------------|
39
+ | `CORS_ORIGINS` | array | `['http://localhost:3000', 'http://localhost:5173']` | Allowed origins (comma-separated) | server.config.ts |
40
+ | `CORS_METHODS` | array | `['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']` | Allowed HTTP methods | server.config.ts |
41
+ | `CORS_HEADERS` | array | `['Content-Type', 'Authorization']` | Allowed headers | server.config.ts |
42
+ | `CORS_CREDENTIALS` | boolean | `false` | Allow credentials | server.config.ts |
43
+ | `CORS_MAX_AGE` | number | `86400` | Preflight cache duration (seconds) | server.config.ts |
44
+
45
+ ## Client (Vite)
46
+
47
+ | Variable | Type | Default | Description | Config File |
48
+ |----------|------|---------|-------------|-------------|
49
+ | `VITE_PORT` | number | `5173` | Vite dev server port | client.config.ts |
50
+ | `VITE_HOST` | string | `'localhost'` | Vite dev server host | client.config.ts |
51
+ | `VITE_STRICT_PORT` | boolean | `true` | Fail if port unavailable | client.config.ts |
52
+ | `VITE_OPEN` | boolean | `false` | Auto-open browser | client.config.ts |
53
+ | `ENABLE_VITE_PROXY_LOGS` | boolean | `false` | Enable proxy logging | client.config.ts |
54
+ | `VITE_LOG_LEVEL` | enum | `undefined` | Log level: `error`, `warn`, `info`, `silent` | client.config.ts |
55
+
56
+ ## Client Build
57
+
58
+ | Variable | Type | Default | Description | Config File |
59
+ |----------|------|---------|-------------|-------------|
60
+ | `CLIENT_OUTDIR` | string | `'dist/client'` | Client build output directory | client.config.ts |
61
+ | `CLIENT_SOURCEMAPS` | boolean | `true` (dev) / `false` (prod) | Generate source maps | client.config.ts |
62
+ | `CLIENT_MINIFY` | boolean | `false` (dev) / `true` (prod) | Minify output | client.config.ts |
63
+ | `CLIENT_TARGET` | string | `'esnext'` | Build target | client.config.ts |
64
+ | `CLIENT_ASSETS_DIR` | string | `'assets'` | Assets directory name | client.config.ts |
65
+ | `CLIENT_CSS_CODE_SPLIT` | boolean | `true` | Split CSS into chunks | client.config.ts |
66
+ | `CLIENT_CHUNK_SIZE_WARNING` | number | `500` | Chunk size warning limit (KB) | client.config.ts |
67
+ | `CLIENT_EMPTY_OUTDIR` | boolean | `true` | Empty output dir before build | client.config.ts |
68
+
69
+ ## Build
70
+
71
+ | Variable | Type | Default | Description | Config File |
72
+ |----------|------|---------|-------------|-------------|
73
+ | `BUILD_TARGET` | enum | `'bun'` | Build target: `bun`, `node`, `docker` | build.config.ts |
74
+ | `BUILD_OUT_DIR` | string | `'dist'` | Build output directory | build.config.ts |
75
+ | `BUILD_SOURCE_MAPS` | boolean | `true` (dev) / `false` (prod) | Generate source maps | build.config.ts |
76
+ | `BUILD_CLEAN` | boolean | `true` | Clean output dir before build | build.config.ts |
77
+ | `BUILD_MODE` | enum | `'development'` / `'production'` | Build mode | build.config.ts |
78
+ | `BUILD_EXTERNAL` | array | `[]` | External dependencies (comma-separated) | build.config.ts |
79
+ | `BUILD_OPTIMIZE` | boolean | `true` | Enable optimizations | build.config.ts |
80
+
81
+ ## Build Optimization
82
+
83
+ | Variable | Type | Default | Description | Config File |
84
+ |----------|------|---------|-------------|-------------|
85
+ | `BUILD_MINIFY` | boolean | `false` (dev) / `true` (prod) | Minify code | build.config.ts |
86
+ | `BUILD_TREESHAKE` | boolean | `true` | Remove unused code | build.config.ts |
87
+ | `BUILD_COMPRESS` | boolean | `false` (dev) / `true` (prod) | Compress output | build.config.ts |
88
+ | `BUILD_SPLIT_CHUNKS` | boolean | `true` | Split code into chunks | build.config.ts |
89
+ | `BUILD_BUNDLE_ANALYZER` | boolean | `false` | Enable bundle analyzer | build.config.ts |
90
+ | `BUILD_REMOVE_UNUSED_CSS` | boolean | `false` | Remove unused CSS | build.config.ts |
91
+ | `BUILD_OPTIMIZE_IMAGES` | boolean | `false` | Optimize images | build.config.ts |
92
+
93
+ ## Logging
94
+
95
+ | Variable | Type | Default | Description | Config File |
96
+ |----------|------|---------|-------------|-------------|
97
+ | `LOG_LEVEL` | enum | `'info'` | Log level: `debug`, `info`, `warn`, `error` | logger.config.ts |
98
+ | `LOG_FORMAT` | enum | `'pretty'` | Log format: `pretty`, `json` | logger.config.ts |
99
+ | `LOG_DATE_FORMAT` | string | `'YYYY-MM-DD HH:mm:ss'` | Date format string | logger.config.ts |
100
+ | `LOG_OBJECT_DEPTH` | number | `4` | Object inspection depth | logger.config.ts |
101
+ | `LOG_TO_FILE` | boolean | `false` | Enable file logging | logger.config.ts |
102
+ | `LOG_MAX_SIZE` | string | `'20m'` | Max log file size | logger.config.ts |
103
+ | `LOG_MAX_FILES` | string | `'14d'` | Max log file retention | logger.config.ts |
104
+ | `LOG_TRANSPORTS` | array | `['console']` | Log transports (comma-separated) | logger.config.ts |
105
+ | `LOG_COLORS` | boolean | `true` | Enable colored output | logger.config.ts |
106
+ | `LOG_STACK_TRACE` | boolean | `true` | Show stack traces | logger.config.ts |
107
+
108
+ ## Plugins
109
+
110
+ | Variable | Type | Default | Description | Config File |
111
+ |----------|------|---------|-------------|-------------|
112
+ | `FLUXSTACK_PLUGINS_ENABLED` | array | `['logger', 'swagger', 'vite', 'cors', 'static-files']` | Enabled plugins | plugins.config.ts |
113
+ | `FLUXSTACK_PLUGINS_DISABLED` | array | `[]` | Disabled plugins | plugins.config.ts |
114
+ | `PLUGINS_AUTO_DISCOVER` | boolean | `true` | Auto-discover plugins | plugins.config.ts |
115
+ | `PLUGINS_DIR` | string | `'plugins'` | Plugins directory | plugins.config.ts |
116
+ | `PLUGINS_DISCOVER_NPM` | boolean | `false` | Discover npm plugins | plugins.config.ts |
117
+ | `PLUGINS_DISCOVER_PROJECT` | boolean | `true` | Discover project plugins | plugins.config.ts |
118
+ | `PLUGINS_ALLOWED` | array | `[]` | Whitelist of allowed plugins | plugins.config.ts |
119
+ | `LOGGER_PLUGIN_ENABLED` | boolean | `true` | Enable logger plugin | plugins.config.ts |
120
+
121
+ ## Swagger
122
+
123
+ | Variable | Type | Default | Description | Config File |
124
+ |----------|------|---------|-------------|-------------|
125
+ | `SWAGGER_ENABLED` | boolean | `true` | Enable Swagger UI | plugins.config.ts |
126
+ | `SWAGGER_TITLE` | string | `'FluxStack API'` | API documentation title | plugins.config.ts |
127
+ | `SWAGGER_VERSION` | string | `'1.11.0'` | API version | plugins.config.ts |
128
+ | `SWAGGER_DESCRIPTION` | string | `'API documentation for FluxStack application'` | API description | plugins.config.ts |
129
+ | `SWAGGER_PATH` | string | `'/swagger'` | Swagger UI path | plugins.config.ts |
130
+ | `SWAGGER_EXCLUDE_PATHS` | array | `[]` | Paths to exclude from docs | plugins.config.ts |
131
+ | `SWAGGER_SERVERS` | string | `''` | API servers (JSON string) | plugins.config.ts |
132
+ | `SWAGGER_PERSIST_AUTH` | boolean | `true` | Persist authorization | plugins.config.ts |
133
+ | `SWAGGER_DISPLAY_DURATION` | boolean | `true` | Display request duration | plugins.config.ts |
134
+ | `SWAGGER_ENABLE_FILTER` | boolean | `true` | Enable endpoint filter | plugins.config.ts |
135
+ | `SWAGGER_SHOW_EXTENSIONS` | boolean | `true` | Show extensions | plugins.config.ts |
136
+ | `SWAGGER_TRY_IT_OUT` | boolean | `true` | Enable "Try it out" | plugins.config.ts |
137
+ | `SWAGGER_AUTH_ENABLED` | boolean | `false` | Enable basic auth for Swagger | plugins.config.ts |
138
+ | `SWAGGER_AUTH_USERNAME` | string | `'admin'` | Swagger auth username | plugins.config.ts |
139
+ | `SWAGGER_AUTH_PASSWORD` | string | `''` | Swagger auth password | plugins.config.ts |
140
+
141
+ ## Static Files
142
+
143
+ | Variable | Type | Default | Description | Config File |
144
+ |----------|------|---------|-------------|-------------|
145
+ | `STATIC_FILES_ENABLED` | boolean | `true` | Enable static file serving | plugins.config.ts |
146
+ | `STATIC_PUBLIC_DIR` | string | `'public'` | Public files directory | plugins.config.ts |
147
+ | `STATIC_UPLOADS_DIR` | string | `'uploads'` | Uploads directory | plugins.config.ts |
148
+ | `STATIC_CACHE_MAX_AGE` | number | `31536000` | Cache max age (seconds) | plugins.config.ts |
149
+ | `STATIC_ENABLE_UPLOADS` | boolean | `true` | Enable uploads serving | plugins.config.ts |
150
+ | `STATIC_ENABLE_PUBLIC` | boolean | `true` | Enable public files serving | plugins.config.ts |
151
+
152
+ ## Vite Plugin
153
+
154
+ | Variable | Type | Default | Description | Config File |
155
+ |----------|------|---------|-------------|-------------|
156
+ | `VITE_PLUGIN_ENABLED` | boolean | `true` | Enable Vite plugin | plugins.config.ts |
157
+ | `VITE_EXCLUDE_PATHS` | array | `['/api', '/swagger']` | Paths to exclude from Vite proxy | plugins.config.ts |
158
+
159
+ ## Monitoring
160
+
161
+ | Variable | Type | Default | Description | Config File |
162
+ |----------|------|---------|-------------|-------------|
163
+ | `ENABLE_MONITORING` | boolean | `false` | Enable monitoring | monitoring.config.ts |
164
+ | `MONITORING_EXPORTERS` | array | `[]` | Monitoring exporters | monitoring.config.ts |
165
+ | `ENABLE_HEALTH_CHECKS` | boolean | `true` | Enable health checks | monitoring.config.ts |
166
+ | `HEALTH_CHECK_INTERVAL` | number | `30000` | Health check interval (ms) | monitoring.config.ts |
167
+ | `ENABLE_ALERTS` | boolean | `false` | Enable alerting | monitoring.config.ts |
168
+ | `ALERT_WEBHOOK` | string | `undefined` | Alert webhook URL | monitoring.config.ts |
169
+
170
+ ## Metrics
171
+
172
+ | Variable | Type | Default | Description | Config File |
173
+ |----------|------|---------|-------------|-------------|
174
+ | `ENABLE_METRICS` | boolean | `false` | Enable metrics collection | monitoring.config.ts |
175
+ | `METRICS_INTERVAL` | number | `5000` | Collection interval (ms, min 1000) | monitoring.config.ts |
176
+ | `HTTP_METRICS` | boolean | `true` | Collect HTTP metrics | monitoring.config.ts |
177
+ | `SYSTEM_METRICS` | boolean | `true` | Collect system metrics | monitoring.config.ts |
178
+ | `CUSTOM_METRICS` | boolean | `false` | Enable custom metrics | monitoring.config.ts |
179
+ | `METRICS_EXPORT_CONSOLE` | boolean | `true` (dev) / `false` (prod) | Export to console | monitoring.config.ts |
180
+ | `METRICS_EXPORT_FILE` | boolean | `false` | Export to file | monitoring.config.ts |
181
+ | `METRICS_EXPORT_HTTP` | boolean | `false` | Export via HTTP | monitoring.config.ts |
182
+ | `METRICS_EXPORT_URL` | string | `undefined` | HTTP export URL | monitoring.config.ts |
183
+ | `METRICS_RETENTION_PERIOD` | number | `3600000` | Retention period (ms) | monitoring.config.ts |
184
+ | `METRICS_MAX_DATA_POINTS` | number | `1000` | Max data points to store | monitoring.config.ts |
185
+
186
+ ## Profiling
187
+
188
+ | Variable | Type | Default | Description | Config File |
189
+ |----------|------|---------|-------------|-------------|
190
+ | `PROFILING_ENABLED` | boolean | `false` | Enable profiling | monitoring.config.ts |
191
+ | `PROFILING_SAMPLE_RATE` | number | `0.1` (dev) / `0.01` (prod) | Sample rate (0-1) | monitoring.config.ts |
192
+ | `MEMORY_PROFILING` | boolean | `false` | Enable memory profiling | monitoring.config.ts |
193
+ | `CPU_PROFILING` | boolean | `false` | Enable CPU profiling | monitoring.config.ts |
194
+ | `HEAP_SNAPSHOT` | boolean | `false` | Enable heap snapshots | monitoring.config.ts |
195
+ | `PROFILING_OUTPUT_DIR` | string | `'profiling'` | Profiling output directory | monitoring.config.ts |
196
+ | `PROFILING_MAX_PROFILES` | number | `10` | Max profiles to keep | monitoring.config.ts |
197
+
198
+ ## Runtime (Reloadable)
199
+
200
+ | Variable | Type | Default | Description | Config File |
201
+ |----------|------|---------|-------------|-------------|
202
+ | `ENABLE_SWAGGER` | boolean | `true` | Enable Swagger (runtime) | runtime.config.ts |
203
+ | `DEBUG` | boolean | `false` | Enable debug mode | runtime.config.ts |
204
+ | `RATE_LIMIT_ENABLED` | boolean | `true` | Enable rate limiting | runtime.config.ts |
205
+ | `RATE_LIMIT_MAX` | number | `100` | Max requests per window | runtime.config.ts |
206
+ | `RATE_LIMIT_WINDOW` | number | `60000` | Rate limit window (ms) | runtime.config.ts |
207
+ | `REQUEST_TIMEOUT` | number | `30000` | Request timeout (ms) | runtime.config.ts |
208
+ | `MAX_UPLOAD_SIZE` | number | `10485760` | Max upload size (bytes, default 10MB) | runtime.config.ts |
209
+ | `MAINTENANCE_MODE` | boolean | `false` | Enable maintenance mode | runtime.config.ts |
210
+ | `MAINTENANCE_MESSAGE` | string | `'System is under maintenance...'` | Maintenance message | runtime.config.ts |
211
+
212
+ ## Database
213
+
214
+ | Variable | Type | Default | Description | Config File |
215
+ |----------|------|---------|-------------|-------------|
216
+ | `DATABASE_URL` | string | `''` | Database connection URL | database.config.ts |
217
+ | `DATABASE_PROVIDER` | enum | `'postgres'` | Provider: `postgres`, `mysql`, `sqlite`, `mssql`, `mongodb` | database.config.ts |
218
+ | `DATABASE_CONNECTION_TIMEOUT` | number | `5000` | Connection timeout (ms) | database.config.ts |
219
+ | `DATABASE_SSL` | boolean | `false` | Enable SSL connection | database.config.ts |
220
+
221
+ ## Services - Email
222
+
223
+ | Variable | Type | Default | Description | Config File |
224
+ |----------|------|---------|-------------|-------------|
225
+ | `MAIL_HOST` | string | `'smtp.example.com'` | SMTP host | services.config.ts |
226
+ | `MAIL_PORT` | number | `587` | SMTP port | services.config.ts |
227
+ | `MAIL_USERNAME` | string | `''` | SMTP username | services.config.ts |
228
+ | `MAIL_PASSWORD` | string | `''` | SMTP password | services.config.ts |
229
+ | `MAIL_FROM_ADDRESS` | string | `'no-reply@example.com'` | From email address | services.config.ts |
230
+ | `MAIL_SECURE` | boolean | `false` | Use TLS/SSL | services.config.ts |
231
+
232
+ ## Services - JWT
233
+
234
+ | Variable | Type | Default | Description | Config File |
235
+ |----------|------|---------|-------------|-------------|
236
+ | `JWT_SECRET` | string | `'change-me'` | JWT secret key | services.config.ts |
237
+ | `JWT_EXPIRES_IN` | string | `'1h'` | Token expiration | services.config.ts |
238
+ | `JWT_AUDIENCE` | string | `'fluxstack'` | JWT audience | services.config.ts |
239
+ | `JWT_ISSUER` | string | `'fluxstack'` | JWT issuer | services.config.ts |
240
+
241
+ ## Services - Storage
242
+
243
+ | Variable | Type | Default | Description | Config File |
244
+ |----------|------|---------|-------------|-------------|
245
+ | `STORAGE_DRIVER` | enum | `'local'` | Storage driver: `local`, `s3` | services.config.ts |
246
+ | `STORAGE_LOCAL_DIR` | string | `'uploads'` | Local storage directory | services.config.ts |
247
+ | `STORAGE_S3_BUCKET` | string | `''` | S3 bucket name | services.config.ts |
248
+ | `STORAGE_S3_REGION` | string | `''` | S3 region | services.config.ts |
249
+ | `STORAGE_S3_ENDPOINT` | string | `''` | S3 endpoint URL | services.config.ts |
250
+
251
+ ## Services - Redis
252
+
253
+ | Variable | Type | Default | Description | Config File |
254
+ |----------|------|---------|-------------|-------------|
255
+ | `REDIS_ENABLED` | boolean | `false` | Enable Redis | services.config.ts |
256
+ | `REDIS_URL` | string | `'redis://localhost:6379'` | Redis connection URL | services.config.ts |
257
+
258
+ ## System
259
+
260
+ | Variable | Type | Default | Description | Config File |
261
+ |----------|------|---------|-------------|-------------|
262
+ | `USER` | string | `''` | Current user (Unix) | system.config.ts |
263
+ | `USERNAME` | string | `''` | Current user (Windows) | system.config.ts |
264
+ | `HOME` | string | `''` | Home directory (Unix) | system.config.ts |
265
+ | `USERPROFILE` | string | `''` | Home directory (Windows) | system.config.ts |
266
+ | `PWD` | string | `''` | Current working directory | system.config.ts |
267
+ | `PATH` | string | `''` | System PATH | system.config.ts |
268
+ | `SHELL` | string | `''` | Shell executable | system.config.ts |
269
+ | `TERM` | string | `''` | Terminal type | system.config.ts |
270
+ | `LANG` | string | `'en_US.UTF-8'` | System language | system.config.ts |
271
+ | `TMPDIR` | string | `''` | Temporary directory | system.config.ts |
272
+ | `CI` | boolean | `false` | Running in CI environment | system.config.ts |
273
+
274
+ ## Validation Rules
275
+
276
+ ### Port Numbers
277
+ - Must be between 1 and 65535
278
+ - Validated on startup
279
+
280
+ ### Rate Limiting
281
+ - `RATE_LIMIT_MAX` must be positive
282
+ - `RATE_LIMIT_WINDOW` must be positive
283
+
284
+ ### Metrics
285
+ - `METRICS_INTERVAL` must be at least 1000ms
286
+
287
+ ### Profiling
288
+ - `PROFILING_SAMPLE_RATE` must be between 0 and 1
289
+
290
+ ### API Prefix
291
+ - Must start with `/`
292
+
293
+ ### Timeouts
294
+ - `REQUEST_TIMEOUT` must be positive
295
+ - `DATABASE_CONNECTION_TIMEOUT` must be positive
296
+
297
+ ## Type Casting
298
+
299
+ ### String to Number
300
+ ```bash
301
+ PORT=3000 # → 3000 (number)
302
+ ```
303
+
304
+ ### String to Boolean
305
+ ```bash
306
+ ENABLE_FEATURE=true # → true
307
+ ENABLE_FEATURE=1 # → true
308
+ ENABLE_FEATURE=yes # → true
309
+ ENABLE_FEATURE=on # → true
310
+ ENABLE_FEATURE=false # → false
311
+ ```
312
+
313
+ ### String to Array
314
+ ```bash
315
+ CORS_ORIGINS=http://localhost:3000,http://localhost:5173
316
+ # → ['http://localhost:3000', 'http://localhost:5173']
317
+ ```
318
+
319
+ ### String to Object
320
+ ```bash
321
+ METADATA='{"key":"value"}' # → { key: "value" }
322
+ ```
323
+
324
+ ## Related
325
+
326
+ - [Declarative System](./declarative-system.md) - Config schema and validation
327
+ - [Runtime Reload](./runtime-reload.md) - Reloadable configuration