react-on-rails-pro-node-renderer 16.5.0 → 16.6.0-rc.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.
@@ -29,7 +29,9 @@ export interface Config {
29
29
  export declare function getConfig(): Config;
30
30
  export declare function logSanitizedConfig(): void;
31
31
  /**
32
- * Lazily create the config
32
+ * Lazily create the config.
33
+ * Passing password: undefined means "keep the env/default password", not "clear the password".
34
+ * Other undefined keys retain normal JavaScript spread semantics.
33
35
  */
34
36
  export declare function buildConfig(providedUserConfig?: Partial<Config>): Config;
35
37
  //# sourceMappingURL=configBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configBuilder.d.ts","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAcvC,MAAM,WAAW,MAAM;IAIrB,IAAI,EAAE,MAAM,CAAC;IAIb,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,eAAe,CAAC;IAE1B,YAAY,EAAE,eAAe,CAAC;IAG9B,oBAAoB,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAG9D,qBAAqB,EAAE,MAAM,CAAC;IAE9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,cAAc,EAAE,OAAO,CAAC;IAKxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAElD,YAAY,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAI7B,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C,oCAAoC,EAAE,MAAM,GAAG,SAAS,CAAC;IAGzD,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjD,qBAAqB,EAAE,MAAM,CAAC;IAE9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzC,UAAU,EAAE,OAAO,CAAC;IAEpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAIhC,8BAA8B,EAAE,OAAO,CAAC;IAIxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,SAAS,WAMxB;AAwID,wBAAgB,kBAAkB,SASjC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAsExE"}
1
+ {"version":3,"file":"configBuilder.d.ts","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAavC,MAAM,WAAW,MAAM;IAIrB,IAAI,EAAE,MAAM,CAAC;IAIb,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,eAAe,CAAC;IAE1B,YAAY,EAAE,eAAe,CAAC;IAG9B,oBAAoB,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAG9D,qBAAqB,EAAE,MAAM,CAAC;IAE9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,cAAc,EAAE,OAAO,CAAC;IAKxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAElD,YAAY,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAI7B,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C,oCAAoC,EAAE,MAAM,GAAG,SAAS,CAAC;IAGzD,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjD,qBAAqB,EAAE,MAAM,CAAC;IAE9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzC,UAAU,EAAE,OAAO,CAAC;IAEpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAIhC,8BAA8B,EAAE,OAAO,CAAC;IAIxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,SAAS,WAMxB;AAuKD,wBAAgB,kBAAkB,SAYjC;AAgCD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CA8FxE"}
@@ -22,7 +22,6 @@ const DEFAULT_PORT = 3800;
22
22
  const DEFAULT_LOG_LEVEL = 'info';
23
23
  const { env } = process;
24
24
  const MAX_DEBUG_SNIPPET_LENGTH = 1000;
25
- const NODE_ENV = env.NODE_ENV || 'production';
26
25
  let config;
27
26
  let userConfig = {};
28
27
  function getConfig() {
@@ -68,6 +67,24 @@ function logLevel(level) {
68
67
  return DEFAULT_LOG_LEVEL;
69
68
  }
70
69
  }
70
+ function normalizedRuntimeEnvs() {
71
+ return [env.RAILS_ENV, env.NODE_ENV]
72
+ .filter((value) => Boolean(value))
73
+ .map((value) => value.toLowerCase());
74
+ }
75
+ function runtimeEnvsAllowDevelopmentDefaults() {
76
+ const runtimeEnvs = normalizedRuntimeEnvs();
77
+ // Fail closed: every present runtime env must be development/test before we allow
78
+ // missing-password defaults. Any production-like value, or no env at all, still
79
+ // requires an explicit password.
80
+ return runtimeEnvs.length > 0 && runtimeEnvs.every((value) => value === 'development' || value === 'test');
81
+ }
82
+ function defaultReplayServerAsyncOperationLogs() {
83
+ if (env.REPLAY_SERVER_ASYNC_OPERATION_LOGS != null) {
84
+ return (0, truthy_js_1.default)(env.REPLAY_SERVER_ASYNC_OPERATION_LOGS);
85
+ }
86
+ return env.NODE_ENV?.toLowerCase() === 'development';
87
+ }
71
88
  const defaultConfig = {
72
89
  // Use env port if we run on Heroku
73
90
  port: Number(env.RENDERER_PORT) || DEFAULT_PORT,
@@ -96,8 +113,8 @@ const defaultConfig = {
96
113
  maxDebugSnippetLength: MAX_DEBUG_SNIPPET_LENGTH,
97
114
  // default to true if empty, otherwise it is set to false
98
115
  stubTimers: env.RENDERER_STUB_TIMERS === 'true' || !env.RENDERER_STUB_TIMERS,
99
- // default to true in development, otherwise it is set to false
100
- replayServerAsyncOperationLogs: (0, truthy_js_1.default)(env.REPLAY_SERVER_ASYNC_OPERATION_LOGS ?? NODE_ENV === 'development'),
116
+ // Default to true in development, otherwise it is set to false.
117
+ replayServerAsyncOperationLogs: defaultReplayServerAsyncOperationLogs(),
101
118
  // Maximum number of VM contexts to keep in memory. Defaults to 2 since typically only two contexts
102
119
  // are needed - one for the server bundle and one for React Server Components (RSC) if enabled.
103
120
  maxVMPoolSize: (env.MAX_VM_POOL_SIZE && parseInt(env.MAX_VM_POOL_SIZE, 10)) || 2,
@@ -111,7 +128,8 @@ function envValuesUsed() {
111
128
  RENDERER_SERVER_BUNDLE_CACHE_PATH: !userConfig.serverBundleCachePath && env.RENDERER_SERVER_BUNDLE_CACHE_PATH,
112
129
  RENDERER_BUNDLE_PATH: !userConfig.serverBundleCachePath && !userConfig.bundlePath && env.RENDERER_BUNDLE_PATH,
113
130
  RENDERER_WORKERS_COUNT: !userConfig.workersCount && env.RENDERER_WORKERS_COUNT,
114
- RENDERER_PASSWORD: !userConfig.password && env.RENDERER_PASSWORD && '<MASKED>',
131
+ // Explicit password overrides, including empty strings, intentionally suppress the env-derived value here.
132
+ RENDERER_PASSWORD: userConfig.password === undefined && env.RENDERER_PASSWORD && '<MASKED>',
115
133
  RENDERER_SUPPORT_MODULES: !('supportModules' in userConfig) && env.RENDERER_SUPPORT_MODULES,
116
134
  RENDERER_STUB_TIMERS: !('stubTimers' in userConfig) && env.RENDERER_STUB_TIMERS,
117
135
  RENDERER_ALL_WORKERS_RESTART_INTERVAL: !userConfig.allWorkersRestartInterval && env.RENDERER_ALL_WORKERS_RESTART_INTERVAL,
@@ -124,10 +142,19 @@ function envValuesUsed() {
124
142
  };
125
143
  }
126
144
  function sanitizedSettings(aConfig, defaultValue) {
145
+ let sanitizedPassword = defaultValue;
146
+ if (aConfig?.password === '') {
147
+ sanitizedPassword = '<EMPTY STRING>';
148
+ }
149
+ else if (aConfig?.password) {
150
+ sanitizedPassword = '<MASKED>';
151
+ }
127
152
  return aConfig && Object.keys(aConfig).length > 0
128
153
  ? {
129
154
  ...aConfig,
130
- password: aConfig.password != null ? '<MASKED>' : defaultValue,
155
+ // Distinguish explicit empty-string overrides from truly missing passwords in diagnostics.
156
+ // Empty strings still flow through as explicit overrides and fail validation in production-like envs.
157
+ password: sanitizedPassword,
131
158
  allWorkersRestartInterval: aConfig.allWorkersRestartInterval || defaultValue,
132
159
  delayBetweenIndividualWorkerRestarts: aConfig.delayBetweenIndividualWorkerRestarts || defaultValue,
133
160
  gracefulWorkerRestartTimeout: aConfig.gracefulWorkerRestartTimeout || defaultValue,
@@ -138,18 +165,61 @@ function logSanitizedConfig() {
138
165
  log_js_1.default.info({
139
166
  'Node Renderer version': packageJson_js_1.default.version,
140
167
  'Protocol version': packageJson_js_1.default.protocolVersion,
141
- 'Default settings': defaultConfig,
168
+ 'Default settings at module load (env-backed values may lag current runtime)': sanitizedSettings(defaultConfig, '<NOT PROVIDED AT MODULE LOAD>'),
142
169
  'ENV values used for settings (use "RENDERER_" prefix)': envValuesUsed(),
143
170
  'Customized values for settings from config object (overrides ENV)': sanitizedSettings(userConfig),
144
171
  'Final renderer settings': sanitizedSettings(config, '<NOT PROVIDED>'),
145
172
  });
146
173
  }
174
+ function validatePasswordForProduction(aConfig) {
175
+ // Only a truthy password satisfies the production-like requirement. Null, undefined, and empty strings are
176
+ // all treated as missing passwords.
177
+ if (aConfig.password)
178
+ return null;
179
+ // Require all present runtime envs to be development/test; fail closed otherwise.
180
+ // If either env indicates a production-like value, or neither env is set, password is required.
181
+ // This preserves a fail-closed invariant across the renderer startup path and the Ruby-side checks.
182
+ const allowMissingPassword = runtimeEnvsAllowDevelopmentDefaults();
183
+ if (allowMissingPassword)
184
+ return null;
185
+ return ('RENDERER_PASSWORD must be set in production-like environments ' +
186
+ `(NODE_ENV: "${env.NODE_ENV ?? '(not set)'}", RAILS_ENV: "${env.RAILS_ENV ?? '(not set)'}").` +
187
+ '\n\n' +
188
+ 'In development and test environments, the renderer password is optional and no authentication\n' +
189
+ 'is required. In all other environments, you must explicitly configure a password to secure\n' +
190
+ 'communication between Rails and the Node Renderer.\n\n' +
191
+ 'To fix this, set the RENDERER_PASSWORD environment variable:\n\n' +
192
+ ' export RENDERER_PASSWORD="your-secure-password"\n\n' +
193
+ 'Or pass it in the config object:\n\n' +
194
+ ' reactOnRailsProNodeRenderer({ password: process.env.RENDERER_PASSWORD });\n\n' +
195
+ 'Environment matrix:\n' +
196
+ ' development — password optional (no authentication)\n' +
197
+ ' test — password optional (no authentication)\n' +
198
+ ' (neither set) — treated as production-like; RENDERER_PASSWORD required\n' +
199
+ ' all other environments (staging, production, qa, preview, etc.) — RENDERER_PASSWORD required');
200
+ }
147
201
  /**
148
- * Lazily create the config
202
+ * Lazily create the config.
203
+ * Passing password: undefined means "keep the env/default password", not "clear the password".
204
+ * Other undefined keys retain normal JavaScript spread semantics.
149
205
  */
150
206
  function buildConfig(providedUserConfig) {
151
207
  userConfig = providedUserConfig || {};
152
- config = { ...defaultConfig, ...userConfig };
208
+ const explicitUndefinedPassword = Object.prototype.hasOwnProperty.call(userConfig, 'password') && userConfig.password === undefined;
209
+ if (explicitUndefinedPassword && !runtimeEnvsAllowDevelopmentDefaults()) {
210
+ log_js_1.default.warn('buildConfig({ password: undefined }) preserves the env/default password rather than clearing it. ' +
211
+ 'In production-like environments, a password is always required and cannot be cleared.');
212
+ }
213
+ const runtimeDefaultConfig = {
214
+ ...defaultConfig,
215
+ password: env.RENDERER_PASSWORD,
216
+ // Re-evaluate env-derived defaults at build time in case env vars are set post-import.
217
+ replayServerAsyncOperationLogs: defaultReplayServerAsyncOperationLogs(),
218
+ };
219
+ config = { ...runtimeDefaultConfig, ...userConfig };
220
+ if (explicitUndefinedPassword) {
221
+ config.password = runtimeDefaultConfig.password;
222
+ }
153
223
  // Handle bundlePath deprecation
154
224
  if ('bundlePath' in userConfig) {
155
225
  log_js_1.default.warn('bundlePath is deprecated and will be removed in a future version. ' +
@@ -196,6 +266,11 @@ function buildConfig(providedUserConfig) {
196
266
  log_js_1.default.error('includeTimerPolyfills is renamed to stubTimers in RoRP 4.0');
197
267
  process.exit(1);
198
268
  }
269
+ const passwordValidationError = validatePasswordForProduction(config);
270
+ if (passwordValidationError) {
271
+ log_js_1.default.error(passwordValidationError);
272
+ process.exit(1);
273
+ }
199
274
  log_js_1.default.level = config.logLevel;
200
275
  return config;
201
276
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configBuilder.js","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configBuilder.js","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"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"}